126

たとえば、次のような名前のファイルが必要です。

dd.mm.yyyy.log

log4netでこれはどのように可能ですか?

4

9 に答える 9

218
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
  <lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
  <file value="logs\" />
  <datePattern value="dd.MM.yyyy'.log'" />
  <staticLogFileName value="false" />
  <appendToFile value="true" />
  <rollingStyle value="Composite" />
  <maxSizeRollBackups value="10" />
  <maximumFileSize value="5MB" />
  <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
  </layout>
</appender>
于 2011-11-24T10:31:25.913 に答える
108

Log4net 構成ファイルで、RollingFileAppender で次のパラメーターを使用します。

<param name="DatePattern" value="dd.MM.yyyy'.log'" />
于 2009-07-22T13:02:59.593 に答える
32

RollingLogFileAppender の場合、次の要素と値も必要です。

<rollingStyle value="Date" />
<staticLogFileName value="false" />
于 2010-01-15T23:47:24.527 に答える
0

システム変数を使用して CI から簡単に変更できるように、構成をコードに移動しました。ファイル名にこのコードを使用すると、結果は「Log_03-23-2020.log」になります

            log4net.Repository.ILoggerRepository repository = LogManager.GetRepository(Assembly.GetEntryAssembly());
            Hierarchy hierarchy = (Hierarchy)repository;
            PatternLayout patternLayout = new PatternLayout();
            patternLayout.ConversionPattern = "%date %level - %message%newline%exception";
            patternLayout.ActivateOptions();

            RollingFileAppender roller = new RollingFileAppender();
            roller.AppendToFile = true;
            roller.File = "Log_";
            roller.DatePattern = "MM-dd-yyyy'.log'";
            roller.Layout = patternLayout;
            roller.MaxFileSize = 1024*1024*10;
            roller.MaxSizeRollBackups = 10;
            roller.StaticLogFileName = false;
            roller.RollingStyle = RollingFileAppender.RollingMode.Composite;
            roller.ActivateOptions();
            hierarchy.Root.AddAppender(roller);

于 2020-03-23T22:47:31.190 に答える
0

以前の応答の拡張構成セクション

 ...
 ...
 <rollingStyle value="Composite" />
 ...
 ...

リストされた作品ですが、使用する必要はありませんでした

<staticLogFileName value="false" /> 

. RollingAppender はその設定を (論理的に) 無視する必要があると思います。定義上、アプリケーションが再起動/再利用されるたびにファイルが再構築されるからです。おそらく、アプリケーションが起動するたびに即座にロールオーバーすることは重要です。

于 2012-03-21T21:42:58.713 に答える