1

カスタムビルドのロギング コンポーネントを log4Net に置き換えます。現在、ログ ファイルはサイズに基づいてローリングされますが、新しいログが作成されるときにファイル名に日付/タイムスタンプが含まれます。

例えば; アプリケーション-2015-04-06-130733.log

このログ ファイルが構成可能なサイズ (たとえば 10MB) に達すると、新しいファイルが新しい日付/タイムスタンプで作成されます。

Web、フォーラム、log4net ドキュメントなどを精査しましたが、log4net 構成でこれを達成する方法が見つかりません。

これが私の最新のlog4net構成ファイルです:

<log4net>
    <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
      <param name="File" type="log4net.Util.PatternString" value="%property{ProgramDataLogDir}\Application-.log"/>
      <param name="AppendToFile" value="false"/>
      <param name="RollingStyle" value="Composite"/>
      <param name="DatePattern" value="yyyy-MM-dd" />
      <param name="MaxSizeRollBackups" value="-1"/>
      <param name="MaximumFileSize" value="10MB"/>
      <param name="StaticLogFileName" value="false"/>
      <param name="preserveLogFileNameExtension" value="true" />
      <threshold value="DEBUG"/>
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="%property{ThreadID} %d{MM/dd/yy HH:mm:ss.fff} %property{DebugLevel} %property{ComputerName} %property{ProcessName} [%t] %c %m%n" />
      </layout>
    </appender>

    <root>
      <appender-ref ref="RollingFileAppender"/>
    </root>

  </log4net>

これにより、ログ ファイルが Application-2015-04-06.log で作成され、10 MB のしきい値に達すると、日付の後に .1、.2、.3 などの新しいファイルが作成されます。

アプリケーション-2015-04-06.1.log

アプリケーション-2015-04-06.2.log

アプリケーション-2015-04-06.3.log

.1、.2、.3 などを日付スタンプ HHmmss に変更できれば完璧です。

さらに、アプリケーションを起動するたびに新しいファイルを開始する必要があります。Application-2015-04-06-130733.log のような形式を実現できれば、このケースも処理できるはずです。

要約する:

1.) ファイルはサイズごとにロールします。

2.) 新しいファイルが作成されるたびに、アプリケーションの開始時またはサイズによるローリング時に、ファイル名に新しい日付/タイムスタンプを含める必要があります。

アプリケーション-2015-04-06-130733.log

ありがとう!

4

0 に答える 0