回答:
まず、この値をアプリケーション構成ファイルに設定する必要があります。
<configuration>
<appSettings>
<add key="log4net.Internal.Debug" value="true"/>
</appSettings>
</configuration>
次に、出力を保存するファイルを決定するために、同じ.configファイルに次のコードを追加できます。
<configuration>
...
<system.diagnostics>
<trace autoflush="true">
<listeners>
<add
name="textWriterTraceListener"
type="System.Diagnostics.TextWriterTraceListener"
initializeData="C:\tmp\log4net.txt" />
</listeners>
</trace>
</system.diagnostics>
...
</configuration>
詳細な説明については、「log4netの内部デバッグを有効にするにはどうすればよいですか?」を参照してください。でlog4netのFAQページ。
C:\tmp\log4net.txt
とC:\log4net.txt
、テキストファイルを生成できます。
<configSections></configSections>
がの下の最初のエントリであることを確認してください<configuration>
。そうしないと、エラーが発生します。
traceOutputOptions="TimeStamp"
とtraceOutputOptions="DateTime"
でadd
タグが、それは、ログファイルの内容には何も変化しません。誰かがlog4netを設定して、トレースログファイルの各行/エントリの時間を表示する方法を知っていますか?
エントリポイントのあるルートアプリケーションが、何かをlog4netに記録していることを確認してください。次のいずれかを指定します。
private static ILog logger = LogManager.GetLogger(typeof(Program));
static void Main(string[] args)
{
logger.InfoFormat("{0} v.{1} started.", Assembly.GetExecutingAssembly().GetName().Name, Assembly.GetExecutingAssembly().GetName().Version.ToString());
2.0.8で、面白い状況になりました。ライブラリプロジェクトと、その機能をデモするテストexeプロジェクトを作成しました。ライブラリプロジェクトは、exeプロジェクトと同様にLog4netを使用するように設定されました。exeプロジェクトはassemblyinfo属性を使用して構成を登録しましたが、コンソールまたはログファイルへのログ出力がありませんでした。log4netの内部デバッグロギングをオンにすると、いくつかの内部メッセージがコンソールに書き込まれましたが、それでも通常のログはありません。エラーは報告されていません。上記のコードをプログラムに追加すると、すべてが機能し始めました。そうでない場合、Log4netは正しくセットアップされました。