NLog 的行为可以通过配置文件和编程方式进行配置。
似乎当我设置编程规则时,仍然处理存在的任何配置文件,因此这两种机制同时发挥作用。这是准确的吗?
是否可以将 NLog 设置为仅使用编程规则并阻止它读取任何配置文件?
为了扩展 Sergey 的答案,假设您有一个 LogFactory:
var factory = new LogFactory()
当它被创建时,它会尝试从配置文件中读取配置数据。您可以调整或补充此配置
factory.Configuration.LoggingRules.Add( ... )
但是,您也可以将配置替换为您自己的:
factory.Configuration = new LoggingConfiguration();
在这种情况下,任何已加载的配置都将被丢弃,现在您将继续使用您在代码中创建的规则。
LoggingConfiguration config = new LoggingConfiguration(); //Create configuration object in code
Logger Log = LogManager.GetCurrentClassLogger(); //Load configuration from xml file
如果您分别使用其中一种方法,它将起作用