log4net禁用堆栈跟踪但保留异常消息

时间:2018-02-12 16:33:09

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

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

我试过

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

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

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

1 个答案:

答案 0 :(得分:1)

如果您只想使用例外邮件,可以在%exception{message}中使用<conversionPattern><IgnoresException value="False" />即使<layout type="log4net.Layout.PatternLayout"> <IgnoresException value="False" /> <conversionPattern value="%-5p %d{hh:mm:ss} %message (%exception{message})%newline"/> </layout> 仍然显示异常邮件。

e.g。

if (def.outputs.length) {
    for (let i = 0; i < def.outputs.length; i++) {
      const output = def.outputs[i];
      const subscription = instance[output.propName !].subscribe(
          eventHandlerClosure(view, def.parent !.nodeIndex, output.eventName));
      view.disposables ![def.outputIndex + i] = subscription.unsubscribe.bind(subscription);

尽管如此,我建议谨慎使用这种方法,完全丢弃堆栈跟踪可能会导致数小时的挫折,因为跟踪异常来源变得更加困难。