NLog:如何防止使用 ${message} 布局渲染器记录完整的异常详细信息?

NLog: how to prevent full exception details from being logged with ${message} layout renderer?

我只是想做一些简单的日志记录到控制台,并使异常信息非常简短。如果提供了补充消息,我还想显示它。

这是我的目标:

<target name="console" xsi:type="ColoredConsole" layout="${message} | ${exception:format=message}" />

在我的代码中,如果我这样做:

try
{
    throw new DivideByZeroException("Should not divide by zero");
}
catch (Exception e)
{
    _logger.Error(e, "A supplementary message");
}

以下内容被发送到控制台:

A supplementary message | Should not divide by zero

这正是我想要的。

但是,如果相反,我省略了补充信息,例如 _logger.Error(e); 然后我得到了 ${message} 布局渲染器的完整异常转储(堆栈跟踪等)。

如何配置NLog,在没有指定补充信息的情况下不输出任何信息?如果以下内容输出到控制台,我会很高兴:

| Should not divide by zero

这是一个已知问题,由于向后兼容性,这将在下一个主要版本 (NLog 5) 中得到修复

Github issue