NLog OnNewLogFile 处理程序?
NLog OnNewLogFile Handler?
每次 NLog 启动一个新的日志文件时,是否有任何事件处理程序或类似的事件处理程序可以连接到 运行 一些代码?
我有这样的 NLog 配置:
<target name="logfile" xsi:type="File"
fileName="[stuff]"
layout="[more Stuff]"
maxArchiveFiles="4"
archiveAboveSize="102400" />
我有点想在每个日志文件的开头添加一些元数据(版本号、机器名称等,以便每个日志文件都包含一些上下文信息)
我不希望能够在 NLog 本身中配置此文本,但我希望我可以告诉 NLog 每次要创建新日志文件时 运行 某种方法。
这是一回事吗?
您可以使用 FileSystemWatcher。
FileSystemWatcher 正在监视特定的(您想要的)目录,如果创建了新文件,请使用 FileSystemWatcher
处理此事件
更多详情:https://docs.microsoft.com/en-us/dotnet/api/system.io.filesystemwatcher?view=netframework-4.8
此问题 "What version?" 方面的另一个部分解决方案可能来自:
https://github.com/NLog/NLog/wiki/AssemblyVersion-Layout-Renderer
听起来你真的在寻找 FileTarget 上的 Header-Layout。
<target name="logfile" xsi:type="File">
<header>--- ${assembly-version} started on ${longdate} ---</header>
</target>
另见 https://github.com/NLog/NLog/wiki/File-target
有些将其与 archiveOldFileOnStartup="true"
结合使用,因为 Header 仅在创建文件时打印(确保应用程序重新启动将创建新文件)。
每次 NLog 启动一个新的日志文件时,是否有任何事件处理程序或类似的事件处理程序可以连接到 运行 一些代码?
我有这样的 NLog 配置:
<target name="logfile" xsi:type="File"
fileName="[stuff]"
layout="[more Stuff]"
maxArchiveFiles="4"
archiveAboveSize="102400" />
我有点想在每个日志文件的开头添加一些元数据(版本号、机器名称等,以便每个日志文件都包含一些上下文信息)
我不希望能够在 NLog 本身中配置此文本,但我希望我可以告诉 NLog 每次要创建新日志文件时 运行 某种方法。
这是一回事吗?
您可以使用 FileSystemWatcher。
FileSystemWatcher 正在监视特定的(您想要的)目录,如果创建了新文件,请使用 FileSystemWatcher
处理此事件更多详情:https://docs.microsoft.com/en-us/dotnet/api/system.io.filesystemwatcher?view=netframework-4.8
此问题 "What version?" 方面的另一个部分解决方案可能来自:
https://github.com/NLog/NLog/wiki/AssemblyVersion-Layout-Renderer
听起来你真的在寻找 FileTarget 上的 Header-Layout。
<target name="logfile" xsi:type="File">
<header>--- ${assembly-version} started on ${longdate} ---</header>
</target>
另见 https://github.com/NLog/NLog/wiki/File-target
有些将其与 archiveOldFileOnStartup="true"
结合使用,因为 Header 仅在创建文件时打印(确保应用程序重新启动将创建新文件)。