【问题标题】:Prevent NLog from rendering inner text when layout render output is empty当布局渲染输出为空时,防止 NLog 渲染内部文本
【发布时间】:2014-01-27 19:11:43
【问题描述】:

我将我的 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>}

【问题讨论】:

    标签: nlog


    【解决方案1】:

    我遇到了类似的问题,并得到了这样的工作:

    ${when:when=length('${httpContextItems:key=RequestTicket}') > 0:inner=&lt;div&gt;Request ticket ${httpContextItems:key=RequestTicket}&lt;/div&gt;}
    

    请注意,我必须在 Request ticket 之后删除冒号。无论我尝试什么,NLog 都会在冒号之前或之后继续剪切文本(用 \ 转义,使用 ${literal},用其 ASCII 代码替换冒号,将冒号放在单独的变量中......)。

    【讨论】:

      【解决方案2】:

      而且 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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-08-18
        • 2018-11-10
        • 2022-11-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多