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

标签 c# logging nlog

最近开始尝试使用 NLog,我突然想到我希望能够将 header 信息添加到日志文件的顶部,例如:

Executable name
File version
Release Date
Windows User ID
etc...

经过一番搜索后,我无法在现有的在线文档或代码论坛中找到任何表明此类功能的内容。这可能吗?我以前总是将此类信息包含在日志文件中,并且发现它在过去的许多情况下都很有用,在客户站点获取有关生产问题的信息时。不可否认,此功能是为解决方案定制构建的,而不是基于任何当前的 .NET 日志记录框架。

最佳答案

我的一位同事在使用 log4net 创建的日志中查看复制页眉/页脚时,偶然发现了这一点。我从一些开源项目中找到了这个并将其改编为内部示例。我认为根据您的需要进行修改应该很简单。

<target name="logfile2" xsi:type="File" fileName="Logs\NLogDemo2.txt">
  <layout xsi:type="LayoutWithHeaderAndFooter">
    <header xsi:type="SimpleLayout" text="----------NLog Demo Starting---------&#xD;&#xA;"/>
    <layout xsi:type="SimpleLayout" text="${longdate}|${level:uppercase=true}|${logger}|${message}" />
    <footer xsi:type="SimpleLayout" text="----------NLog Demo Ending-----------&#xD;&#xA;"/>
  </layout>
</target>

它给我的输出看起来像这样:

----------NLog Demo Starting---------

2013-03-01 16:40:19.5404|INFO|Project.Form1|Sample informational message
2013-03-01 16:40:19.5714|WARN|Project.Form1|Sample warning message
2013-03-01 16:40:19.5714|ERROR|Project.Form1|Sample error message
2013-03-01 16:40:19.5714|FATAL|Project.Form1|Sample fatal error message
----------NLog Demo Ending-----------

我不知道为什么这似乎没有记录。我能找到的唯一引用是这里:https://github.com/nlog/NLog/wiki/LayoutWithHeaderAndFooter

-乔迪

关于c# - Nlog - 为日志文件生成 header 部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4196663/

相关文章:

c# - 使用 phpMyAdmin 从远程计算机连接到本地 MySQL 数据库

c# - C# 中是否有像 Dictionary<> 这样的类,但只有键,没有值?

java - Log4j2 无 GC 异步记录器 : passing mutable objects

c# - 如何为调用同一类中其他方法的方法创建基于状态的测试?

c# - c# 使用 linq 对数据表中的多列进行分组

android - 在 Android 中捕获完整的日志

.net - 使用 .net 监听器轮换日志文件

exception - Nlog错误(消息,异常)忽略异常

c# - 使用 CaSTLe 日志记录工具将 CaSTLe Windsor 版本 4.0.0 与 NLog 结合起来

.NET Compact Framework 的日志库?