【问题标题】:NLog OnNewLogFile Handler?NLog OnNewLogFile 处理程序?
【发布时间】:2020-02-22 02:29:36
【问题描述】:

是否有任何我可以挂钩的事件处理程序或类似的东西,以便在每次 NLog 启动一个新的日志文件时运行一些代码?


我有一个这样的 NLog 配置:

    <target name="logfile" xsi:type="File"
            fileName="[stuff]"
            layout="[more Stuff]"
            maxArchiveFiles="4"
            archiveAboveSize="102400"  />

我有点想在每个日志文件的开头添加一些元数据(版本号、机器名称等,以便每个日志文件都包含一些上下文信息)

我不希望能够在 NLog 本身中配置此文本,但我希望我可以告诉 NLog 每次它要创建一个新的日志文件时运行某个方法。

这是一回事吗?

【问题讨论】:

标签: nlog


【解决方案1】:

听起来您真的在寻找 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" 结合使用,因为仅在创建文件时才打印标题(确保应用程序重新启动将创建新文件)。

【讨论】:

    【解决方案2】:

    您可以使用 FileSystemWatcher

    FileSystemWatcher 正在监视特定(您想要的)目录,如果创建了新文件,请使用 FileSystemWatcher 处理此事件

    更多详情:https://docs.microsoft.com/en-us/dotnet/api/system.io.filesystemwatcher?view=netframework-4.8

    【讨论】:

      【解决方案3】:

      “什么版本?”的另一个部分解决方案这个问题的方面可能来自:

      https://github.com/NLog/NLog/wiki/AssemblyVersion-Layout-Renderer

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-04-10
        • 1970-01-01
        • 1970-01-01
        • 2013-09-19
        相关资源
        最近更新 更多