0

古いバージョンの log4net: 1.2.0.21221 を使用しています。

新しいバージョンの log4net を使用すると、ローリング ファイル アペンダーをうまく利用できました。

プロパティの使用:

log4net.GlobalContext.Properties["LogName"] = string.Concat(fileName, "_", dateTimeInfo, ".log");

log4net.ThreadContext.Properties["Version"] = "1";

XmlConfigurator.Configure();

これらは古いバージョンの log4net では利用できません。構成ファイルで定義されたローリング ファイル アペンダーを使用するにはどうすればよいですか? アプリケーションを起動するたびに、構成ファイルの新しい名前が必要です。

4

1 に答える 1

1

ファイルに適切な名前を付けるためにGlobalContextを使用する理由はありません。

次の例を参照してください。

<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
  <file value="FILENAME" />
  <appendToFile value="true" />
  <rollingStyle value="Date" />
  <staticLogFileName value="false" />
  <maximumFileSize value="100KB" />
  <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
  <datePattern value="-yyyyMMddhhmmss'.log'" />
  <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
  </layout>
</appender>

これ<file value="..." />はファイル名の最初の部分です。必要に応じてPREファイル名。もう少し下を見ると<datePattern value="..." />、ファイル名の残りの部分があります。file属性に入力した値にAPPENDEDされます。私の例では、という名前のファイルを出力しますFILENAME-20110124090021.log

datePatternの最後の部分に気付いた場合は、二重引用符の中に一重引用符'.log'が含まれており、datetime呼び出しによる評価から値をエスケープするだけです。

于 2011-01-24T15:26:18.993 に答える