NLog - 缩进/格式漂亮的 JSON

Xer*_*lio 6 c# nlog asp.net-core

我很惊讶我无法找到这个问题的答案,但是如何让 NLog 以漂亮的格式编写 JSON 格式的消息,而不是默认的单行版本?

是否有一个简单的设置,或者我需要编写一个自定义渲染器?

基本上代替

{ "date": "2018-11-18 14:21:45.0671", "level": "INFO", "message": "Some message" }

我想要

{
  "date": "2018-11-18 14:21:45.0671",
  "level": "INFO",
  "message": "Some message"
}
Run Code Online (Sandbox Code Playgroud)

Rol*_*sen 0

NLog v5.1.4 已发布 - https://www.nuget.org/packages/NLog/5.1.4,它使用以下设置扩展了JsonLayoutindentJson="true"

<nlog>
  <targets>
    <target name="jsonConsole" xsi:type="Console">
      <layout xsi:type="JsonLayout" includeEventProperties="true" indentJson="true">
        <attribute name="time" layout="${longdate}" />
        <attribute name="level" layout="${level:upperCase=true}" />
        <attribute name="message" layout="${message}" />
      </layout>
    </target>
  </targets>
  <rules>
      <logger name="*" minlevel="Debug" writeTo="jsonConsole" />
  </rules>
</nlog>
Run Code Online (Sandbox Code Playgroud)