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

C# 如何将多个变量从一个方法传递到NLOG.config?,c#,nlog,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"

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

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文件如下所示:

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

试一试


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

logger.Info($“'行计数:'{rowsTotal}'运行时间:'{processTime}”)

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

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

您还可以使用NLog Fluent API:


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

谢谢!尝试了LogEvent属性,效果非常好。我认为不使用c#字符串插值是一个更好的建议。So
logger.Info(“'Rows count:'{rowsTotal}'运行时间:'{processTime}',rowsTotal,processTime”)关闭日志记录时效率更高