【问题标题】:Nlog - conditional layout based on messageNlog - 基于消息的条件布局
【发布时间】:2016-09-01 13:08:59
【问题描述】:

我希望nlog在消息为空时输出换行符,当消息不为空时,我想要输出布局。
我尝试了以下方法,但它不起作用:

<variable name="DefaultLayout" value="${time}  ${level:uppercase=true}: ${message}"/>
<variable name="Main" value="${when:when='${message}'=='':inner=${newline}:else=${DefaultLayout}}"/>
......
<target xsi:type="ColoredConsole" name="console" layout="${Main}" />

在此配置中,当消息为空时打印新行,但当消息不为空时,它不打印此消息,只有16:06:34.7274 INFO
如何修复配置以获得预期的效果?

【问题讨论】:

    标签: nlog


    【解决方案1】:

    您需要使用反斜杠 (\) 转义变量 DefaultLayout 中的冒号 (:)

    【讨论】:

    • 哇!我在文档中看到了这一点,但认为这不是必需的,因为我没有使用直接布局,而是使用引用变量。感谢@Julian 的提示,感谢您为 Nlog 所做的令人印象深刻的工作!
    • 感谢@Kai!仅供参考,变量在解析配置时是内联的,因此它们与直接使用具有相同的规则。
    猜你喜欢
    • 2020-07-19
    • 2017-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多