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


我有一个这样的 NLog 配置:

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

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

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

这是一回事吗?

#1楼 票数:2 已采纳

听起来您真的在寻找 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 仅在创建文件时打印(确保应用程序重新启动将创建新文件)。

#2楼 票数:1

您可以使用FileSystemWatcher

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

有关更多详细信息: https : //docs.microsoft.com/en-us/dotnet/api/system.io.filesystemwatcher?view=netframework-4.8

#3楼 票数:1

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

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

  ask by Brondahl translate from so

未解决问题?本站智能推荐:

1回复

Nlog 在 Dotnetty 处理程序中无法正常工作

我写了一个 Dotnetty 服务器并使用 Nlog 作为日志框架。 每个连接都有自己的 ID,我想将此 ID 与其他数据(消息、日期时间等)一起记录到 Sql。 由于 Dotnetty 通过单线程处理多个连接,因此使用 mdlc/ndlc 记录 ID 会导致记录不正确的数据(不正确是指一个连接 I
1回复

NLog 配置部分处理程序在 Net Standard 中不可用

我目前正在使用 NLog 的 NET Framework 实现,在我的 app.config 中使用标准的 NLog 配置节处理程序。 当我想将库迁移到 NET Standard 时,我查看了源代码,其中有一行 为什么 NET Standard 包中不支持NLog.Config.ConfigSe
1回复

为nlog创建配置节处理程序时出错:在NLog.Targets.DatabaseParameterInfo上设置属性'Layout'时出错

我(我认为是)一个非常简单的NLog数据库记录器,没有异国情调或令人兴奋,但我正在大吼大叫,我没有任何关于问题是什么的信息。 我把NLog连接到Common.Logging就像这样: 当我尝试运行我的api应用程序时,收到以下错误消息: 我的内部NLog日志不是很有用:
2回复

NLog:定制安装程序

我的任务是编写ac#表单应用程序以: 显示可安装NLog的可用网站的DDL(基于我们的内部标准) 安装所需的文件以支持NLog 我有一些工作站点(我没有写过),都使用NLog功能作为基础。 Global.asax和App_Code / LogManager.vb之间存在一
1回复

当应用程序是默认处理程序时,NLog将日志文件写入不正确的目录

我遇到了一个奇怪的问题,我想知道它是配置还是错误。 我在网上找不到任何东西,所以这就是问题所在。 我的问题是如何写入可执行目录而不是启动目录。 重现步骤: 创建带有日志记录的应用程序( C:\\Program Files\\FooBar\\FooBar.exe ) 使
1回复

在 Azure 函数中处理 NLog

我想在 Azure Functions 启动类中添加 NLog,如下所示: 根据 Nlog,您应该使用NLog.LogManager.Shutdown()手动关闭记录器。 如何在 Azure Function 中处理 NLog?
2回复

NLog:从 nlog.config 切换到程序化配置

以前,我的 ASP .NET MVC5 应用程序在使用 nlog.config 文件时可以很好地记录错误日志。 现在我想摆脱配置文件的方法; 我想以编程方式配置 Nlog 并消除对配置文件的需要。 这些示例很好地向我展示了如何以编程方式设置它,但我对如何实际调用配置类并实际实现它感到困惑。 这是我所
1回复

使用nlog进行全局异常处理

有没有一种方法博客可以捕获所有异常而无需指定try catch? 例如,转到MVC网站上不可用的页面,并在Icontroller中拾取错误并捕获未找到的页面。 ?