如何将多个变量从方法传递到NLOG.config?

时间:2018-08-16 21:04:31

标签: c# nlog

目前,我在方法中有两个变量,

float processTime = processTime.ElapsedMilliseconds;
var rowsTotal = resultadoSQL.Rows.Count;

我想将这两个变量传递给NLog.config,所以我可以这样使用它们:

<target name="sql" xsi:type="File" fileName="C:\Users\Dev\Desktop\Framework\Logs\sql.txt" 
        layout="'Rows count:' (rowsTotal) 'Elapsed Time:' processTime"/>

很显然,布局中的语法是错误的,他的目的只是为了展示我想要实现的目标。 .txt文件如下所示:

  

行数:456经过时间:87878

2 个答案:

答案 0 :(得分:0)

尝试

<target name="sql" xsi:type="File" fileName="C:\Users\Dev\Desktop\Framework\Logs\sql.txt" 
        layout="'Rows count:'${rowsTotal} 'Elapsed Time:' ${processTime}"/>

答案 1 :(得分:0)

也许将目标布局更改为${message}并执行以下操作:

logger.Info($"'Rows count:' {rowsTotal} 'Elapsed Time:' {processTime}");

您还可以更高级地使用NLog LogEvent属性:

https://github.com/NLog/NLog/wiki/EventProperties-Layout-Renderer

如果使用NLog 4.5,则可以使用结构化日志记录:

https://github.com/NLog/NLog/wiki/How-to-use-structured-logging

您还可以使用NLog Fluent API:

https://github.com/NLog/NLog/wiki/Fluent-API

或者直接将属性写入NLog.LogEventInfo.Properties