如何在nlog中将属性序列化为json
Posted
技术标签:
【中文标题】如何在nlog中将属性序列化为json【英文标题】:How to serialize property to json in nlog 【发布时间】: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 布局没有源。如何解决这个问题?
【问题讨论】:
【参考方案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>
【讨论】:
以上是关于如何在nlog中将属性序列化为json的主要内容,如果未能解决你的问题,请参考以下文章
如何在 .NET Core 中将 JSON 序列化为没有转义字符的字符串?