2017-07-07 10 views
1

私はlog4netを使用するwpfアプリケーションで作業しています。現在、単一のファイルに記録され、大きすぎるとロールオーバーするだけです。私はこれを変更して、ファイルが大きくなりすぎたり、日付が変わったり、アプリケーションを再起動したりすると、ファイルが大きくなるようにしています。C# - 日付、サイズ、アプリケーションのlog4netロールオーバーを

私はドキュメントから理解し何から可能

App_2017-07-06.0.txt //First launch on 2017-07-06 
App_2017-07-06.1.txt //Rollover due to size limit 
App_2017-07-06.2.txt //Application relaunch 
App_2017-07-06.3.txt //Rollover due to size limit 
App_2017-07-07.0.txt //Rollover due to date change 
App_2017-07-07.1.txt //Rollover due to size limit 
App_2017-07-07.2.txt //Application relaunch - Currently Logging File 

として以下に近い出力を取得しようとしています、ローリングスタイルは、日付とサイズをキャプチャする「compostite」に設定することができ、またはそれができ

アプリケーションの再起動を取得するには、「一度」に設定します。 http://logging.apache.org/log4net/release/sdk/html/T_log4net_Appender_RollingFileAppender_RollingMode.htm

私は、アプリケーションの再起動以外はすべて既存のファイルを上書きします(appendToFileプロパティのために想像してしまいます)。私はちょうどそれが私が必要とする方法で働くことができないと私はドキュメントでは答えを見つけることができないようだ。

この質問は同様の目標を達成しようとしているようだが、私の問題を解決しませんでした: How do I force a rollover at application startup with Log4net RolloverFileAppender?

私は何かが足りないのですか? log4netでこれを行うことはできませんか?

私の現在の構成

<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender"> 
     <file type="log4net.Util.PatternString" value="Log\App.txt" /> 
     <appendToFile value="false" /> 
     <rollingStyle value="Composite" /> 
     <maximumFileSize value="10KB" /> 
     <maxSizeRollBackups value="-1" /> 
     <staticLogFileName value="false" /> 
     <preserveLogFileNameExtension value="true" /> 
     <countDirection value="1" /> 
     <lockingModel type="log4net.Appender.RollingFileAppender+MinimalLock" /> 
     <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%date %level User = %username Class = %property{ClassName} Method = %property{MethodName}%newlineMessage - %message%newline%exception%newline***************************************" /> 
     </layout> 
    </appender> 

私の現在の出力として、これまで私はlog4netのコピーにXXXXにログファイルを知っているよう

App_2017-07-06.0.txt //First launch on 2017-07-06 
App_2017-07-06.1.txt //Rollover due to size limit 
App_2017-07-06.1.txt //Application relaunch - overwrites pre-existing file 
App_2017-07-06.2.txt //Rollover due to size limit 
App_2017-07-07.0.txt //Rollover due to date change 
App_2017-07-07.1.txt //Rollover due to size limit 
App_2017-07-07.1.txt //Application relaunch - overwrites pre-existing file - Currently logging file 

答えて

0

。{番号} .txtのそれは次のファイルにロールオーバー。したがって、最初のApp_2017-07-06.1.txtは決して作成されず、アプリケーションの再起動時にはまだApp_2017-07-06.txtと呼ばれます。 App_2017-07-06.txtがオーバーライドされ、最初のApp_2017-07-06.1.txtが決して作成されないように設定しました。

<appendToFile value="true" />は、既存のファイルを上書きしないように設定できます。

関連する問題