我是NLog的新手,我对layout和layout-renderers感到困惑。
我看到了以下代码\页面:
https://github.com/NLog/NLog/wiki/Configuration-API
Layout = @"${date:format=HH\:mm\:ss} ${level} ${message} ${exception}"
我首先了解(日志消息的格式),但是我不了解第二和第三。
答案 0 :(得分:2)
${something}
。 NLog中大约有100个布局渲染器,但也有一些第三方布局渲染器。参见https://nlog-project.org/config/?tab=layout-renderers 您可以将布局视为组合布局渲染器的一种方法。默认布局有点隐藏,但其他布局应使其更清晰。请参见下面的示例。
Layout = @"${date:format=HH\:mm\:ss} ${level} ${message} ${exception}"
这是具有4个布局渲染器(日期,级别,消息,异常)的默认布局
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到数据库等)。
(另请参见https://github.com/NLog/NLog/wiki/Exception-Layout-Renderer)
这用于呈现异常,因为异常是与NLog中的消息分开捕获的。另请参见How to proper log exceptions