nlog - 使用 NLog 打印多行消息

标签 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 | -----------------------------------

或者,是否可以使用 NLog 在多线程环境中将多条消息作为单个、不间断的块发出?

最佳答案

你可以从你的配置中完成所有这些。

<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}"/>

不完全确定您的 64 是什么或您从哪里获得每分钟数据。可能是变量或您插入的东西。如果您登录到文件而不是控制台,这也应该有效。

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

关于nlog - 使用 NLog 打印多行消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34333794/

相关文章:

vb.net - 如何通过 Nlog 通过电子邮件发送整个日志文件

c# - NLog 在文件顶部写入文件日志

c# - Nlog Target Database 在运行时设置连接信息

c# - NLog:强制 BufferingTargetWrapper 在 AppDomain UnhandledException 上清空

sql-server - Elmah.MVC + NLog - 将所有错误存储在一个地方

ios - 无法在 Xamarin iOS 项目中安装包 NLog 4.3.0-alpha3

c# - Enterprise Logging Block vs NLog vs log4net

c# - 如何关闭 Azure Function 中的 NLog 日志记录?

c# - Nlog - 为日志文件生成 header 部分

c# - NLog - 扩展 Nlog - callsite - dispose()