異なるレベルの同じデータベースに対して2つのロガーがあります。私は各ロガーのbufferSizeを変えたいと思います。 1つの方法は、bufferSize要素の違いだけで同じデータベースに2つのアペンダーを持つことですが、コピー貼り付けです。 既に定義されているアペンダーを拡張し、そのbufferSizeプロパティを変更することはできますか?たとえば :同じ要素とプロパティのみ異なる値を持つ2つのアペンダをしている私は避けたいlog4net異なるバッファーを持つデータベースへのアペンダー
<appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender">
<bufferSize value="20" />
...other elements
</appender>
<appender name="AdoNetAppenderChild" extends="AdoNetAppender">
<bufferSize value="1" />
</appender>
<logger name="Fatal" additivity="false">
<level value="FATAL"/>
<appender-ref ref="AdoNetAppenderChild" />
</logger>
<logger name="Common" additivity="false">
<level value="INFO"/>
<appender-ref ref="AdoNetAppender" />
</logger>
がbufferSizeの
_ "それはコピー貼り付け" _ Configは非常によく、冗長で反復的です。このような状況では、設定で倍増するのがおそらくあなたの最善の策です。実行時にバッファサイズを変更してください。唯一の他の選択肢は、アペンダを複製する(または新しいものを作成する)ためのコードを記述することです。これを文書化し、テストする必要があります。 – stuartd
ありがとう。 もう1つの質問ですが、すべてのMVCコントローラ用に単一のスタティックロガーを用意し、そのロガーでセッションからいくつかの追加情報を追加するだけです。 具体的には、log4net.LogicalThreadContext。["sessionVariable"]をセッションから削除した場合、上書きされないか、すべてのリクエストで新しいロガーインスタンスを作成する必要がありますか? – Error
私は静的なロガーで100%自信を持っていません。 log4netはロガーをキャッシュするので、各リクエストで新しいonを作成する方が安全です。 – stuartd