使用
的首选形式_log.Error("Message", exception)
不记录我的堆栈跟踪。为了解决这个问题,我必须确保.ToString()通过执行以下操作来调用异常。
_log.Error("Message" + exception);
但我知道这是错的,只是我无法使正确的版本工作。我的log4net.xml文件中是否需要一个特殊的行才能使其正常工作?
答案 0 :(得分:2)
我想提供最终答案,仅供参考。我使用我对SO问题的答案How do I create an asynchronous wrapper for log4net?
为log4net实现了一个异步appender方案我在回复中注意到你需要注意FixFlags,因为FixFlags中没有的东西会从原始的日志记录事件中删除。不幸的是,我没有将FixFlags.Exception添加到我的原始解决方案中,因此在转发过程中会丢弃生成的任何异常。
从
更改我的FixFlagsloggingEvent.Fix = FixFlags.ThreadName;
要
loggingEvent.Fix = FixFlags.ThreadName | FixFlags.Exception;
修正了问题。