NLog使用When Condition Renderer实现价值可用性

时间:2018-11-28 14:19:21

标签: c# .net nlog

我有一个用于日志输入的值(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。

1 个答案:

答案 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