如何防止 nlog 使用配置文件
本文关键字:配置文件 nlog 何防止 | 更新日期: 2023-09-27 18:30:47
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()
});