使用NLog打印多行消息

Fra*_*une 5 nlog

是否可以使用NLog发出多行消息,以便根据当前布局格式化每一行?例如

2015-12-17 11:37:38.0845 | 64 | INFO | -----------------------------------
2015-12-17 11:37:38.0845 | 64 | INFO | Statistics:
2015-12-17 11:37:38.0845 | 64 | INFO |   Crawling Requests   46887 /min
2015-12-17 11:37:38.0845 | 64 | INFO |   Stored Documents    9910 /min
2015-12-17 11:37:38.0845 | 64 | INFO | -----------------------------------
Run Code Online (Sandbox Code Playgroud)

或者,NLog是否可以在多线程环境中将多个消息作为单个非中断块发出?

小智 5

您可以从配置中完成所有这些操作.

<variable name="statData" value="${longdate} | 64 | ${level} | "/>
<variable name="line" value="-----------------------------------"/>
<targets>
    <target xsi:type="Console"
        name="Console"
        layout="
        ${statData}${line}${newline}
        ${statData}Statistics:${newline}
        ${statData}  Crawling Requests   46887 /min ${newline}
        ${statData}  Stored Documents    9910 /min ${newline}
        ${statData}${line}${newline}"/>
Run Code Online (Sandbox Code Playgroud)

不完全确定您的64是什么或您获得每分钟数据的位置.可能是一个变量或你插入的东西.如果你要记录的文件不是控制台,这也应该有效.

至于你的第二个问题,如果你想要来自多个线程的单个日志消息,我认为你必须在代码端做到这一点.您必须收集线程,获取所需的日志数据并将其发送一次到nLog.我可能会误解