如何防止 nlog 使用配置文件

本文关键字:配置文件 nlog 何防止 | 更新日期: 2023-09-27 18:30:47

NLog的行为既可以通过配置文件进行配置,也可以通过编程方式进行配置。

似乎当我设置编程规则时,仍然存在任何配置文件,因此这两种机制同时发挥作用。 这准确吗?

是否可以将 NLog 设置为仅使用编程规则并阻止它读取任何配置文件?

如何防止 nlog 使用配置文件

为了扩展谢尔盖的答案,假设你有一个日志工厂:

var factory = new LogFactory()

当访问factory.Configuration -property 或 factory.GetLogger(...) 时,它会尝试从配置文件中读取配置数据。 您可以调整或补充此配置

factory.Configuration.LoggingRules.Add( ... )

但是,您也可以将配置替换为自己的配置:

factory.Configuration = new LoggingConfiguration();

在这种情况下,加载的任何配置都将被丢弃,现在您只继续使用在代码中创建的规则。

LogManager.Configuration = new LoggingConfiguration(); // Assigns configuration from code
Logger Log = LogManager.GetCurrentClassLogger(); //Load configuration from xml file, when no configuration assigned

如果您分别使用这些方法之一,它将起作用

更多信息: https://github.com/nlog/nlog/wiki

如果尚未分配任何配置,则 NLog 将在调用 LogManager.GetLogger/LogManager.GetCurrentClassLogger 时尝试自动加载NLog.config

NLog v5 引入了流畅的配置 API,以便轻松设置 NLog 配置并跳过加载NLog.config

NLog.LogManager.Setup().LoadConfiguration(builder => {
   builder.ForLogger().WriteToConsole()
});