为什么log4net没有记录我的堆栈跟踪?

时间:2012-07-17 21:08:45

标签: log4net

使用

的首选形式
_log.Error("Message", exception)

不记录我的堆栈跟踪。为了解决这个问题,我必须确保.ToString()通过执行以下操作来调用异常。

_log.Error("Message" + exception);

但我知道这是错的,只是我无法使正确的版本工作。我的log4net.xml文件中是否需要一个特殊的行才能使其正常工作?

1 个答案:

答案 0 :(得分:2)

我想提供最终答案,仅供参考。我使用我对SO问题的答案How do I create an asynchronous wrapper for log4net?

为log4net实现了一个异步appender方案

我在回复中注意到你需要注意FixFlags,因为FixFlags中没有的东西会从原始的日志记录事件中删除。不幸的是,我没有将FixFlags.Exception添加到我的原始解决方案中,因此在转发过程中会丢弃生成的任何异常。

更改我的FixFlags
loggingEvent.Fix = FixFlags.ThreadName;

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

修正了问题。