2012-03-21 32 views

答えて

2

複数のアペンダーを非常に簡単に設定できます。たとえば、次のようになります。

<appender name="ConsoleAppender" ... 
    ... 
</appender> 

<appender name="RollingFileAppender" ... 
    ... 
</appender> 

<root> 
    <level value="ALL" /> 
    <appender-ref ref="ConsoleAppender" /> 
    <appender-ref ref="RollingFileAppender" /> 
</root> 

2番目の部分は、アペンダーを選択して書き込むことではありません。通常、ロガーを使用して、適切なログレベルで有用であると考えるものを単に書き出します。ログメッセージがどこに書き込まれているかは気にしません。これは、システム管理者が決定するためのものです(IMHO)。

異なるロガーに対して異なるアペンダーを使用することは実際可能です。システム管理者は、YourApp.Securityネームスペース内のすべてのエラーをSMTPアペンダーに記録することを決定し、残りは単純にデータベースまたはファイルに移動します。ロガーの詳細については、この優れたチュートリアルで見つけることができます:それはコード内のアペンダを作成することが可能である(サンプルコードはhereを見つけることができます)が、あなたが本当にこれをしたい場合は、質問がある http://www.beefycode.com/post/Log4Net-Tutorial-pt-5-Using-Logger-Objects.aspx

。例:特定の状況で電子メールを送信する場合は、log4netを使用しないことをお勧めします。代わりに、自分のコードで電子メールを作成して送信するだけです。

+0

お返事ありがとうございます。 log4netが複数のアペンダをサポートしていて、複数のソースにログインすることができます。実行時に使用するアペンダーを決定できないのはなぜですか?私の深刻な疑念は、すでに私たちが同じファイルに複数のアペンダーを持つことができることを知っている第二の部分です。私の質問なぜ私たちは実行時にC#のコードを使用して任意の1つを選択することはできません? –

+0

ロガーが使用するアペンダーを決めることができますが、他の解決策がない場合は、これを行う理由と要件に基づいて、なぜ私は不思議です。ここをクリックしてください(開始する必要があります): http://mail-archives.apache.org/mod_mbox/logging-log4net-user/200602.mbox/%[email protected]%3E –

+0

ステファンに感謝します。これは私が期待したものです。 –

関連する問題