我将NLog错误电子邮件文本的内容放入文件中,并使用FileContents渲染器渲染它。我想做的是,如果布局渲染器生成空字符串
,则隐藏html输出的某些部分<div>Request ticket: ${httpContextItems:key=RequestTicket}</div>
我不确定when condition/property的语法。以下是一些尝试:
${httpContextItems:key=RequestTicket:when:length>0}
<div>Request ticket: ${httpContextItems:key=RequestTicket}</div>
${??? How to enclose? }
并且NLog不喜欢这种嵌套的东西:
${when:when=length(${httpContextItems:key=RequestTicket})=0:inner=<div>Request ticket: ${httpContextItems:key=RequestTicket}</div>}
答案 0 :(得分:1)
我遇到了类似的问题并得到了这样的工作:
${when:when=length('${httpContextItems:key=RequestTicket}') > 0:inner=<div>Request ticket ${httpContextItems:key=RequestTicket}</div>}
请注意,我必须在请求票证之后删除冒号。 NLog继续在冒号之前或之后剪切文本,无论我尝试了什么(使用\转义,使用$ {literal},用其ASCII代码替换冒号,将冒号放在单独的变量中......)。
答案 1 :(得分:1)
并且NLog不喜欢这种嵌套的东西:
${when:when=length(${httpContextItems:key=RequestTicket})=0:inner=<div>Request ticket: ${httpContextItems:key=RequestTicket}</div>}
由于冒号,这是NLog中的一个错误。这应该从NLog 4.2开始工作,因此解决方案是升级NLog。见this issue on GitHub