3

好ましい形式の使用

_log.Error("Message", exception)

スタック トレースをログに記録しません。これを回避するには、次のようにして、.ToString() が例外で呼び出されるようにする必要があります。

_log.Error("Message" + exception);

しかし、それが間違っていることはわかっています。正しいバージョンを機能させることができないだけです。これを機能させるには、log4net.xml ファイルに特別な行が必要ですか?

4

1 に答える 1

2

参考までに、最終的な答えを提供したかったのです。SOの質問への回答を使用して、log4netの非同期アペンダースキームを実装しましたlog4netの非同期ラッパーを作成するにはどうすればよいですか?

回答の中で、FixFlags に注意する必要があることを指摘しました。FixFlags に含まれていないものは元のログ イベントから削除されるためです。残念ながら、元のソリューションに FixFlags.Exception を追加しなかったため、生成された例外は転送プロセス中に破棄されます。

FixFlags の変更

loggingEvent.Fix = FixFlags.ThreadName;

loggingEvent.Fix = FixFlags.ThreadName | FixFlags.Exception;

問題を修正しました。

于 2012-07-19T13:33:04.103 に答える