2011-02-01 9 views
2

私はlog4netを設定していて、 "debug.log"にデバッグメッセージを書き、 "info.log"に情報メッセージを書きます。ログレベルに基づいて異なるファイルに書き込むためのlog4netの設定

<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.logまたはwarn.logなど)のみが異なるためです。

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

(別のノートに - それはNLogにlog4netのでは可能ですが、ことはできません場合は、私も知って感謝されると思います)

感謝を!

答えて

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> 
関連する問題