使用的首选形式
_log.Error("Message", exception)
不记录我的堆栈跟踪。为了解决这个问题,我必须确保.ToString()通过执行以下操作对异常进行调用。
_log.Error("Message" + exception);
但我知道这是错误的,只是我无法使正确的版本发挥作用。我的log4net.xml文件中是否需要一个特殊的行才能使其工作?
我想提供我的最终答案,仅供参考。我已经用我对SO问题的回答为log4net实现了一个异步appender方案。我如何为log4net创建一个异步包装器?
我在回复中指出,您需要小心FixFlags,因为任何不在FixFlags中的内容都会从原始日志事件中删除。不幸的是,我没有将FixFlags.Exception添加到我的原始解决方案中,所以在转发过程中生成的任何异常都会被删除。
从更改我的FixFlags
loggingEvent.Fix = FixFlags.ThreadName;
至
loggingEvent.Fix = FixFlags.ThreadName | FixFlags.Exception;
修复了此问题。