2

log4net をセットアップしていて、デバッグ メッセージを「debug.log」に、情報メッセージを「info.log」などに書き込みたいと考えています。

この目的のために、次のようないくつかのアペンダーを使用します。

<appender name="DebugLogger" type="log4net.Appender.RollingFileAppender">
   <file value="..\Logs\Debug.log" />
   <threshold value="DEBUG" />
   <appendToFile value="true" />
   <rollingStyle value="Size" />
   <maxSizeRollBackups value="10" />
   <maximumFileSize value="1MB" />
   <staticLogFileName value="true" />
   <layout type="log4net.Layout.PatternLayout">
     <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] -    %message%newline" />
   </layout>

INFO、WARN、および ERROR レベルについても同様です。これは問題なく動作しますが、これらのアペンダーはすべてしきい値 (debug または warn など) とファイル名 (debug.log または warn.log など) のみが異なるため、多くの追加作業のように思えます。

私の目標を達成するためのより良い方法はありますか?最初に「ベースアペンダー」を宣言するようなものかもしれません。

(別のメモ-log4netでは不可能であるがNLogでは可能である場合、私も知っていただければ幸いです)

ありがとう!

4

1 に答える 1

3

わかりました、これは log4net では不可能です - 質問を閉じたかっただけです。

私はNLogをチェックアウトしましたが、どうやらそれは非常に簡単です($level設定の変数を参照してください):

<?xml version="1.0" encoding="utf-8" ?>
<nlog>
   <variable name="logDirectory" value="${basedir}\..\Logs"/>
   <targets>
       <target name="file" type="File" fileName="${logDirectory}\${level}.log" />
   </targets>
   <rules>
       <logger name="*" minlevel="Debug" writeTo="file" />
   </rules>
</nlog>
于 2011-02-01T14:20:48.020 に答える