【问题标题】:How to serialize property to json in nlog如何在nlog中将属性序列化为json
【发布时间】:2021-12-01 04:45:42
【问题描述】:

我有以下配置:

<target>
<layout xsi:type="JsonLayout">
 <attribute name="Foo" layout="${event-properties:item=Foo:@}" />
</layout>
</target>

这是推送到输出的结果文档:

{
   "Foo": "{ \"Nested\": \"Json\" } "
}

相反,我想要以下结果:

{
   "Foo": {  "Nested": "Json" }
}

但是,我只想将 Foo 属性呈现为 json,而不是所有事件属性。嵌套的 json 布局没有源。如何解决这个问题?

【问题讨论】:

    标签: c# json nlog


    【解决方案1】:

    NLog JsonLayout 将自动修复来自属性布局的输出,因此保留字符会正确转义。

    但如果您已经知道输出将是有效的 json(在使用 format=@ 时发生),那么您可以像这样指定 encode="false":

    <target>
     <layout xsi:type="JsonLayout">
       <attribute name="Foo" layout="${event-properties:item=Foo:format=@}" encode="false" />
     </layout>
    </target>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-21
      • 2017-10-18
      • 1970-01-01
      • 2012-08-19
      • 1970-01-01
      • 2011-07-03
      • 2013-04-09
      • 1970-01-01
      相关资源
      最近更新 更多