NLog:什么是布局和布局渲染器?

时间:2019-02-17 00:12:28

标签: nlog

我是NLog的新手,我对layout和layout-renderers感到困惑。

我看到了以下代码\页面:

  1. https://github.com/NLog/NLog/wiki/Configuration-API

    Layout = @"${date:format=HH\:mm\:ss} ${level} ${message} ${exception}"

  2. https://github.com/NLog/NLog/wiki/CsvLayout(xml)

  3. https://github.com/NLog/NLog/wiki/Exception-Layout-Renderer(有点像第一个)

我首先了解(日志消息的格式),但是我不了解第二和第三。

1 个答案:

答案 0 :(得分:2)

您可以将布局视为组合布局渲染器的一种方法。默认布局有点隐藏,但其他布局应使其更清晰。请参见下面的示例。

一些例子:

默认布局

Layout = @"${date:format=HH\:mm\:ss} ${level} ${message} ${exception}"

这是具有4个布局渲染器(日期,级别,消息,异常)的默认布局

JSON布局

JsonLayout具有相同的4个布局渲染器的文件目标:

<target name='jsonFile' type='File' fileName='log.json'>
  <layout type='JsonLayout'>
    <attribute name='time' layout='${longdate}' />
    <attribute name='level' layout='${level:upperCase=true}'/>
    <attribute name='message' layout='${message}' />
    <attribute name='exception' layout='${exception}' />
  </layout>
</target>

这将使用{ "time": "2016-10-30 13:30:55.0000", "level": "INFO", "message": "this is message", "exception": "test" }

与CSV相同,但随后创建CSV files(或CSV到数据库等)。

异常布局渲染器:$ {exception}

(另请参见https://github.com/NLog/NLog/wiki/Exception-Layout-Renderer

这用于呈现异常,因为异常是与NLog中的消息分开捕获的。另请参见How to proper log exceptions