1

ASP.NET Web サイトがあり、log4net でログを記録しています。ログの要件は頻繁に変更されるため、PM がログに記録される情報を変更できるようにしたいと考えています。

私の計画は、コンテキストからの GET / POST パラメータなど、特定の値を log4net に公開することです。このようなパラメーターをログに記録するには、ユーザーは log4net 構成に移動して、%message{userId} のような操作を行うだけです。

log4net.ThreadContext のプロパティ バッグを使用してそれを行う方法を見つけましたが、これに副作用がないかどうかはわかりません。つまり、値が長時間保持されます。

別の方法は、転送アペンダーを使用して、ロガーが呼び出されるたびに追加の値を挿入することですが、これを実装できていません。十分な例がありません。

何か案は?

4

2 に答える 2

1

log4net の NDC (Nested Diagnostic Context) を確認する必要があります。これにより、スタックの設定などの情報ログ メッセージを追加できるようになります。

using(log4net.NDC.Push("My extra info")){

} 

NDC スコープ内のすべてのログメッセージで、inner_context が利用可能になります (パターン レイアウト形式)。

[%ndc] - %message%newline
于 2012-10-31T12:40:11.790 に答える