我有一个用于日志输入的值(event-properties:item=Id
),但有时该值可能为空。我希望NLog生成一个值(guid
),如果它为空/空。我正在尝试此操作,但条件渲染器却无法使它生成任何东西时,输入值仍然为空。我在做什么错了?
<parameter name="Id" type="System.Guid"
layout="${when:when=length('${event-properties:item=Id}')>0:${event-properties\:item=Id}:${guid\:format=N}}"/>
使用NLog 4.5。
答案 0 :(得分:0)
替代解决方案:
<parameter name="Id" type="System.Guid" layout="${event-properties:Id:whenEmpty=${guid:format=N}}" />
顺便说一句。如果写入多个目标,则可以考虑将GeneratedFromLogEvent
用于${guid}
。 https://github.com/NLog/NLog/wiki/Guid-layout-renderer