使用 Log4Net 记录 InnerException

发布于 2024-08-24 15:22:00 字数 181 浏览 6 评论 0原文

如何使用 Log4NET 记录内部异常?

这是我当前的转换模式:

<conversionPattern value="%date [%appdomain] %-5level %logger [%property{NDC}] - %message%newline" />

How do I log inner exception with Log4NET?

This is my current conversion pattern:

<conversionPattern value="%date [%appdomain] %-5level %logger [%property{NDC}] - %message%newline" />

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

策马西风 2024-08-31 15:22:00

控制台和文件附加器自动打印异常。异常:消息、堆栈跟踪和所有内部异常(再次使用堆栈跟踪)记录在单独的行上,并且不遵循转换模式。

我什至不确定您是否可以配置 log4net 不打印它。

更新:
可以将附加程序配置为不打印堆栈跟踪:
Log4Net - 仅注销异常堆栈跟踪对于某些文件

Console and File Appenders automatically print the exception. The exception: message, stack trace, and all inner exceptions (again with stack trace) are logged on separate lines and do not follow the conversion pattern.

I am not even sure if you could configure log4net not to print it.

Update:
It is possible to configure the appender to not print the stacktrace:
Log4Net - Logging out the Exception stacktrace only for certain files

绝情姑娘 2024-08-31 15:22:00

<块引用>

%异常

日志条目中异常对象的格式化形式(如果该条目包含异常);否则,此格式表达式不会向日志条目添加任何内容

参考: http://www.beefycode.com/post/Log4Net-Tutorial-pt-4-Layouts-and-Patterns.aspx

我相信您的异常将包含内部异常:

编辑:使用 ILog.Error () 方法而不是 ILog.ErrorFormat()。根据文档,ErrorFormat() 不接受要包含在日志事件中的异常对象

%exception

a formatted form of the exception object in the log entry, if the entry contains an exception; otherwise, this format expression adds nothing to the log entry

Reference: http://www.beefycode.com/post/Log4Net-Tutorial-pt-4-Layouts-and-Patterns.aspx

I believe your exception would contain the inner exception:

Edit: use the ILog.Error() method instead of ILog.ErrorFormat(). As per documentation, ErrorFormat() does not take an Exception object to include in the log event

赠意 2024-08-31 15:22:00

刚刚设法在 Log4Net 版本 2.0 的源代码中验证了这一点,我可以看到没有考虑记录 InnerException。这是 Log4Net(版本 2)当前的限制,它不支持开箱即用的 InnerException 渲染。这就是您开始使用 NLog 的原因,因为它内置了对 InnerException 渲染的支持 - 链接

Just managed to verify this in the sourcecode for Log4Net version 2.0 and I can see there is no consideration for logging InnerException. That is the current limitation of Log4Net (version 2) that it does not support rendering of InnerException out of the box. That's why you would start using NLog as it has builtin support for InnerException rendering - link

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文