好ましい形式の使用
_log.Error("Message", exception)
スタック トレースをログに記録しません。これを回避するには、次のようにして、.ToString() が例外で呼び出されるようにする必要があります。
_log.Error("Message" + exception);
しかし、それが間違っていることはわかっています。正しいバージョンを機能させることができないだけです。これを機能させるには、log4net.xml ファイルに特別な行が必要ですか?
好ましい形式の使用
_log.Error("Message", exception)
スタック トレースをログに記録しません。これを回避するには、次のようにして、.ToString() が例外で呼び出されるようにする必要があります。
_log.Error("Message" + exception);
しかし、それが間違っていることはわかっています。正しいバージョンを機能させることができないだけです。これを機能させるには、log4net.xml ファイルに特別な行が必要ですか?
参考までに、最終的な答えを提供したかったのです。SOの質問への回答を使用して、log4netの非同期アペンダースキームを実装しましたlog4netの非同期ラッパーを作成するにはどうすればよいですか?
回答の中で、FixFlags に注意する必要があることを指摘しました。FixFlags に含まれていないものは元のログ イベントから削除されるためです。残念ながら、元のソリューションに FixFlags.Exception を追加しなかったため、生成された例外は転送プロセス中に破棄されます。
FixFlags の変更
loggingEvent.Fix = FixFlags.ThreadName;
に
loggingEvent.Fix = FixFlags.ThreadName | FixFlags.Exception;
問題を修正しました。