完全重置NLog配置

时间:2012-02-23 09:51:03

标签: .net nlog

请考虑以下代码:

public static void Main(string[] args)
{
    // 1. At this point NLog will search for most common configuration locations,
    //    as described in http://nlog-project.org/wiki/Configuration_file.

    var loggerOne = LogManager.GetLogger("LoggerOne");

    // 2. We set NLog configuration to null, hoping that the next time the
    // configuration is requested the whole process (1) will be repeated.

    LogManager.Configuration = null;

    // 3. NLog won't actually repeat process (1), and so logging is disabled for
    //    the following logger since the configuration is still null.

    var loggerTwo = LogManager.GetLogger("LoggerTwo");
}

浏览NLog的源代码很明显,这与启动时在configLoaded设置的基础LogFactory的{​​{1}}字段有关,而不是重置为{{1在将true分配给false属性之后(对我而言,这将是最有意义的)。我的问题是我是否遗漏了这个过程中的某些内容,或者是否确实存在这样的情况(当然没有使用Reflection)迫使NLog从头开始重新配置并重复进程null

1 个答案:

答案 0 :(得分:0)

首先,让我问一下你想要完成的是什么?在试图了解NLog如何工作时,这更像是一种练习吗?是否有某些特别想要完成的事情?如果是后者,也许已经有一种制裁方式来做你想做的事。

话虽如此,我有一个可能有用的想法(我没试过)。

在查看NLog源代码时,您似乎可以做到这样的事情:

LogManager.Configuration = new LoggingConfiguration();

分配新的LoggingConfiguration看起来会导致日志配置过程从头开始。我不确定在旧配置生效时可能检索到的任何记录器会发生什么。它们仍然有效吗?他们会做任何事吗?