【问题标题】:log4net Disable stack trace but preserve exception messagelog4net 禁用堆栈跟踪但保留异常消息
【发布时间】:2018-02-12 16:33:09
【问题描述】:

如何配置 log4net 以呈现带有异常消息但没有堆栈跟踪的消息?

我试过了

<layout type="log4net.Layout.PatternLayout">
    <IgnoresException value="False" />
</layout>

但它会删除有关异常的所有信息并仅打印出自定义消息。我想保留异常消息并摆脱堆栈跟踪。

如果仅通过配置无法做到这一点,我应该从头开始编写自己的附加程序吗?还是 PatternLayout 就足够了?

【问题讨论】:

  • 你在布局中定义了conversionpattern元素吗?
  • 是的,它看起来像这样:&lt;conversionPattern value="%-5p %d{hh:mm:ss} %message%newline"/&gt;

标签: c# log4net log4net-configuration log4net-appender


【解决方案1】:

如果您只想使用来自异常的消息,您可以在&lt;conversionPattern&gt; 中使用%exception{message},即使使用&lt;IgnoresException value="False" /&gt;,它仍应显示异常消息。

例如

<layout type="log4net.Layout.PatternLayout">
    <IgnoresException value="False" />
    <conversionPattern value="%-5p %d{hh:mm:ss} %message (%exception{message})%newline"/>
</layout>

也就是说,我建议谨慎使用这种方法,完全丢弃堆栈跟踪可能会导致数小时的挫败感,因为追踪异常来源会变得更加困难。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-12
    • 2013-05-24
    • 2011-01-05
    • 2012-02-18
    • 1970-01-01
    • 1970-01-01
    • 2014-01-12
    相关资源
    最近更新 更多