在每次NLog启动一个新的日志文件时,有什么事件处理程序或类似的事件处理程序可以挂接,来运行一些代码吗?
我有一个像这样的NLog Config:
<target name="logfile" xsi:type="File"
fileName="[stuff]"
layout="[more Stuff]"
maxArchiveFiles="4"
archiveAboveSize="102400" />我想在每个日志文件的开头添加一些元数据(版本号、机器名称等),这样每个日志文件都会包含一些上下文信息)。
我不希望能够在NLog本身中配置这个文本,但是我希望我能告诉NLog每次创建一个新的日志文件时都要运行一个特定的方法。
这是件事吗?
发布于 2020-02-21 18:04:54
听起来你真的在寻找头-Layout在FileTarget上。
<target name="logfile" xsi:type="File">
<header>--- ${assembly-version} started on ${longdate} ---</header>
</target>另见https://github.com/NLog/NLog/wiki/File-target
有些将其与archiveOldFileOnStartup="true"结合,因为只有在创建文件时才会打印头(确保应用程序重新启动将创建新文件)。
发布于 2020-02-21 09:53:52
您可以使用FileSystemWatcher.
FileSystemWatcher正在监视特定(您想要的)目录,如果创建了新文件,则使用FileSystemWatcher处理此事件。
有关更多详细信息:https://learn.microsoft.com/en-us/dotnet/api/system.io.filesystemwatcher?view=netframework-4.8
发布于 2020-02-21 11:50:08
“什么版本”的另一个部分解决方案?这个问题的方面可能来自:
https://github.com/NLog/NLog/wiki/AssemblyVersion-Layout-Renderer
https://stackoverflow.com/questions/60335551
复制相似问题