タグ付けされた質問 「log4net」

Apache log4netライブラリは、プログラマがさまざまな出力ターゲットにログステートメントを出力するのに役立つツールです。log4netは、Microsoft®.NETランタイムへの優れたApache log4j™フレームワークのポートです。.NETランタイムの新機能を活用しながら、フレームワークを元のlog4jと同じように維持しました。

15
log4net対Nlog
ロックされています。質問はトピックから外れていますが、歴史的に重要であるため、この質問とその回答はロックされています。現在、新しい回答や相互作用を受け入れていません。 誰もが両方の経験がありますか?彼らはどのように互いに積み重ねますか? そのうちの1つをエンタープライズアプリケーションのログインに使用することを計画しています。 参照: log4net nlog 編集:nlogまたはlog4netへの既存の依存関係はありません。
355 log4net  nlog 

6
log4netの問題を追跡する方法
私はいつもlog4netを使用していますが、内部で何が行われているのかをどのようにして伝えるかは、私が理解できなかったことの1つです。たとえば、プロジェクトにコンソールアペンダーとデータベースアペンダーがあります。データベースとコードにいくつかの変更を加えたところ、データベースアペンダーが機能しなくなりました。最終的には理由を理解しますが、log4netの内部で何が起こっているのかを確認できれば非常に役立ちます。 log4netは、問題の原因を特定するために表示できる出力を生成しますか?
191 .net  logging  log4net 

13
Log4netはログファイルを書き込みません
Log4netを使用して簡単なシナリオを作成しましたが、メッセージがログファイルに追加されないため、アペンダーが機能しないようです。 以下をweb.configファイルに追加しました: <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" requirePermission="false"/> </configSections> <log4net> <appender name="LogFileAppender" type="log4net.Appender.FileAppender"> <file value="D:\MyData\Desktop\LogFile.txt" /> <appendToFile value="true" /> <encoding value="utf-8" /> <layout type="log4net.Layout.SimpleLayout" /> </appender> <root> <level value="INFO" /> <appender-ref ref="LogFileAppender" /> </root> </log4net> 追加したグローバルASAXファイル内: ILog logger = LogManager.GetLogger(typeof(MvcApplication)); Application_Startメソッド内: logger.Info("Starting the application..."); 何を間違えたのですか?
159 c#  .net  asp.net  logging  log4net 

6
構成ファイルを使用する代わりに、コードでlog4netを構成できますか?
log4netがapp.configログの設定にファイルを使用する理由を理解しています。コードを再コンパイルすることなく、情報のログ方法を簡単に変更できます。しかし、私の場合app.config、実行可能ファイルにファイルをパックしたくありません。また、ロギング設定を変更したくありません。 app.config?を使用するのではなく、コードでログを設定する方法はありますか? これが私の簡単な設定ファイルです: <?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" /> </configSections> <log4net> <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender"> <file value="Logs\EventLog.txt" /> <appendToFile value="false" /> <rollingStyle value="Size" /> <maxSizeRollBackups value="5" /> <maximumFileSize value="1GB" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" /> </layout> </appender> <appender name="MemoryAppender" type="log4net.Appender.MemoryAppender"> </appender> …
136 c#  .net  logging  log4net 

5
複数のファイルに書き込むようにLog4netを構成する
同じプロセスからの2つの異なるログファイルにログを書き込みたいのですが。 log4netを使用してそれを行うことは可能ですか? 各ログファイルに個別のメッセージを書き込む必要があります。特定のアペンダーにメッセージを書き込むにはどうすればよいですか?
130 log4net 

7
log4net階層とログレベル
このサイトは言う ロガーにはレベルを割り当てることができます。レベルは、log4net.Core.Levelクラスのインスタンスです。次のレベルは、優先度の高い順に定義されています。 すべて デバッグ INFO 警告 エラー 致命的 オフ DEBUGの優先度は最も低く、ERRORの方が高くなっています。 質問 私が最小と最大の例のデバッグとエラーを設定すると、デバッグ、情報、警告、エラーのすべてが出力されます。最小および最大フィルターを使用しません。ERROR(ログレベル= ERROR)を指定した場合、デバッグ、情報、警告が含まれますか <filter type="log4net.Filter.LevelRangeFilter"> <param name="LevelMin" value="ERROR"/> <param name="LevelMax" value="ERROR"/> </filter> 最小および最大フィルターの代わり。レベルを構成し、その下に他のすべてのレベルを含めてログに記録することは可能ですか? 例-レベルをエラーとして設定します。これには、デバッグ、情報、警告、エラーが含まれます。これはlog4netで可能ですか? コメントの1つに基づくlog4net構成の投稿: <?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" /> </configSections > <log4net debug="true"> <appender name="LogFileAppender" type="log4net.Appender.FileAppender"> <layout type="log4net.Layout.XMLLayout" /> --> <param name="File" value="TestLog.log" /> …

13
log4netが機能しない
こんにちは、web.configにこの構成があります <log4net> <appender name="LogFileAppender" type="log4net.Appender.FileAppender"> <param name="File" value="mylog.log" /> <param name="AppendToFile" value="true" /> <layout type="log4net.Layout.PatternLayout"> <param name="Header" value="" /> <param name="Footer" value="" /> <param name="ConversionPattern" value="%d [%t] %-5p %m%n" /> </layout> </appender> <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender" > <layout type="log4net.Layout.PatternLayout"> <param name="Header" value="[Header]\r\n" /> <param name="Footer" value="[Footer]\r\n" /> <param name="ConversionPattern" value="%d [%t] …
123 c#  .net-4.0  log4net 


3
断続的なlog4net RollingFileAppenderロックファイルの問題
開発マシンと本番マシンで断続的に問題が発生し、ログファイルにログが記録されません。 Visual Studioを使用して開発およびデバッグを実行すると、VS出力ウィンドウに次のlog4netエラーメッセージが表示されます。 log4net:ERROR [RollingFileAppender] Unable to acquire lock on file C:\folder\file.log. 別のプロセスによって使用されているため、プロセスはファイル「C:\ folder \ file.log」にアクセスできません。 log4net:ERROR XmlConfigurator: Failed to find configuration section 'log4net' in the application's .config file. Check your .config file for the <log4net> and <configSections> elements. 構成セクションは次のようになります。 <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" /> この問題に対する現在の回避策は、最後のログファイルの名前を変更することです。もちろん、これは(前述のファイルロックが原因で)失敗することを期待しますが、通常は失敗しません。aspnet_wp.exeプロセスからのロックが原因で、名前変更が1回または2回失敗しました。 log4net構成セクションを以下に示します。 <log4net> <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender"> …

7
log4netとELMAHの違いは何ですか?
一部の人々はlog4netの代わりにELMAH を使用しています。何がそれを良くするのですか? スタックオーバーフローの質問への回答で ELMAHについて知りました。C#でログインするにはどうすればよいですか?
108 c#  .net  logging  log4net  elmah 

3
Nant 0.91で構成エラーを解決するにはどうすればよいですか?
Nant 0.91をダウンロードした後、構成またはセキュリティに関連するかなり不可解な構成エラーが発生します(以下を参照)。 私は単にNant実行可能ファイルを0.86から0.91にアップグレードしようとしています。 Windows 7マシンでビルドする場合、以下の問題をどのように解決できますか? log4net:ERROR XmlConfiguratorAttribute:ConfigurationFileLocationの取得中に例外が発生しました。ConfigFileプロパティとConfigFileExtensionプロパティが設定されていない場合は、ConfigurationFileLocationを解決できる必要があります。System.Security.SecurityException:タイプ 'System.Security.Permissions.FileIOPermission、mscorlib、Version = 4.0.0.0、Culture = neutral、PublicKeyToken = b77a5c561934e089'の権限のリクエストに失敗しました。System.Security.CodeAccessSecurityEngine.Check(Object demand、StackCrawlMark&stackMark、Boolean isPermSet)at System.Security.CodeAccessSecurityEngine.Check(CodeAccessPermission cap、StackCrawlMark&stackMark)at System.Security.CodeAccessPermission.Demand()at System.AppDomainSetup.VerifyDir(文字列dir、ブール値の正規化)、log4net.Util.SystemInfo.get_ConfigurationFileLocation()、log4net.Config。 失敗したアクションは次のとおりです。デマンド失敗した最初のアクセス許可の種類は次のとおりです:System.Security.Permissions.FileIOPermission失敗したアセンブリのゾーンは次のとおりです:インターネット 未処理の例外:System.Security.SecurityException:構成セクション 'nant'にアクセスしようとしたときに、ConfigurationPermissionの要求が失敗しました。すべての呼び出し元がこのセクションのデータにアクセスできるようにするには、このセクションが宣言されている構成ファイルでセクション属性 'requirePermission'を 'false'に設定します。---> System.Security.SecurityException:タイプ 'System.Configuration.ConfigurationPermission、System.Configuration、Version = 4.0.0.0、Culture = neutral、PublicKeyToken = b03f5f7f11d50a3a'の権限のリクエストに失敗しました。System.Security.CodeAccessSecurityEngine.Check(Object demand、StackCrawlMark&stackMark、Boolean isPermSet)at System.Security.CodeAccessSecurityEngine.Check(CodeAccessPermission cap、StackCrawlMark&stackMark)at System.Security.CodeAccessPermission。 (回答は近日公開され、参照用の質問として投稿します...)
106 windows-7  build  log4net  nant 

6
publickeytokenを変更しながらlog4netを回避するには
log4netバージョン1.2.10.0に依存するいくつかのフレームワークを使用するasp.net 4.0プロジェクトがあります。今日、私はlog4netバージョン1.2.11.0に依存する新しいフレームワークを含めようとしました。それ以来、私は行き詰まっています。 log4net 1.2.10.0にはpublickeytoken = 1b44e1d426115821があります log4net 1.2.11.0にはpublickeytoken = 669e0ddf0bb1aa2aがあります これらは異なるため、web.configのランタイム要素を介して、アセンブリリダイレクト(すべてのフレームワークで同じバージョンのlog4netを使用する)またはコードベース(新しいフレームワークでバージョン1.2.11.0を使用する)を使用できません。 ここに私のオプションは何ですか? (そして、なぜlog4netがバージョン間でpublickeytokensを変更し続けるのか、私はそれが失われたキーがバージョン1.2.9.0と1.2.10.0の間の切り替えの理由だったと理解しているので、彼らは再びキーを失いましたか?私は自分のドロップボックスをボランティアします必要に応じて安全に保管する...) 編集:[OK]を、log4netのみんなは明らかにその手段があること2つのキーで解除することは良いアイデアだったという考えを持っていましたが、ので、すべてのあなたがニーズを利用するフレームワークが同意している彼らが好む2種類の、またはそれらのフレームワークできない作業側同じappdomainに並んでいます。私がこれを恐ろしい考えだと思ったのは私だけですか?誰もがこれを行った場合、すべてが壊れますよね? Edit2:前述のように、ビジネスコードでlog4netを使用していませんが、1.2.10.0に依存するいくつかのフレームワークを使用しています。1.2.11.0に依存する新しいフレームワーク(新しいキー)を使用しようとすると問題が発生しました。 )、新しいフレームワークは古いキーではなく新しいキーを期待するため、ステファンの回答は適用されません

5
LogManager.GetLoggerへのlog4net引数
なぜほとんどのlog4netの例がこれを行うことによってクラスのロガーを取得するのですか? private static ILog logger = LogManager.GetLogger( System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); typeof(MyClass)を渡すだけではなく、 private static ILog logger = LogManager.GetLogger(typeof(MyClass)); 最初のオプションでは特定のクラス名を入力する必要がないという事実以外に、これを行う理由は他にありますか?
98 log4net 

3
Log4Net、ログにカスタムフィールドを追加する方法
私はlog4net.Appender.AdoNetAppenderアペンダーを使用しています。 私のlog4netテーブルは次のフィールドです[Date],[Thread],[Level],[Logger],[Message],[Exception] log4netテーブルに別のフィールド(SalesIdなど)を追加する必要がありますが、エラーメッセージまたは情報メッセージをログに記録するときに「SalesId」をログに記録するには、xmlとコードでどのように指定しますか? 例えば log.Info("SomeMessage", SalesId) これがlog4net xmlです <appender name="SalesDBAppender" type="log4net.Appender.AdoNetAppender"> <bufferSize value="1" /> <connectionType value ="System.Data.SqlClient.SqlConnection" /> <connectionString value="Data Source=..." /> <commandText value="INSERT INTO Log4Net ([Date],[Thread],[Level],[Logger],[Message],[Exception]) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception)" /> <parameter> <parameterName value="@log_date" /> <dbType value="DateTime" /> <layout type="log4net.Layout.RawTimeStampLayout" /> </parameter> <parameter> <parameterName value="@thread" /> …
98 c#  log4net  appender 

13
外部ファイルのLog4Net構成が機能しない
私たちはlog4netを使用しており、(他のセクションで行ったように)外部構成ファイルでその構成を指定したいと考えています。これを行うために、App.configのlog4netセクションを次のように変更しました。 ... <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/> ... <log4net configSource="Log.config" /> ... そして、Log.Configファイル(App.configと同じディレクトリ)には、 <log4net> <appender name="General" type="log4net.Appender.FileAppender"> <file value="myapp.log" /> <layout type="log4net.Layout.SimpleLayout" /> </appender> <root> <appender-ref ref="General" /> </root> </log4net> ただし、アプリを実行すると、ログファイルは作成されません(ロギングは行われません)。コンソールに出力されるエラーメッセージはありません。 Log.configファイルの内容をApp.configに戻すと(上記の最初のコード行を置き換える)、期待どおりに機能します。外部ファイルで機能しない理由はありますか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.