有没有办法更改log4net(ILog.Error)记录的默认堆栈跟踪深度?

时间:2017-06-29 15:31:42

标签: c# log4net

默认情况下,当使用Ilog Error(字符串消息,Exception ex)方法时,log4net只记录调用堆栈的5个第一帧。

有没有办法改变它(扩展它)?

PS。这不是" log4net支持包括日志消息中的调用堆栈"。它不是支持在每个记录的消息中包含调用堆栈,而是在调用Error(字符串消息,Exception ex)方法时,它指的是记录的堆栈跟踪帧数量。

1 个答案:

答案 0 :(得分:0)

您可以选择在日志消息中包含callstack:

  

堆栈跟踪:

     

用于输出日志记录事件的堆栈跟踪   堆栈跟踪级别说明符可以括在大括号之间。对于   例如,%stacktrace {level}。如果没有堆栈跟踪级别说明符   给定1然后假设输出使用格式:type3.MethodCall3>   type2.MethodCall2> type1.MethodCall1此模式不可用   用于Compact Framework程序集。

这样您就可以包含调用堆栈。我不知道如何改变异常中的帧数。我知道它不仅限于5,它只是打印异常ToString()。如果你遗漏了异常堆栈的一部分,你可能会重新抛出类似throw ex;的{​​{1}}

的异常。