Полностью Сброс Конфигурации NLog - PullRequest
1 голос
/ 23 февраля 2012

Пожалуйста, обратите внимание на следующий фрагмент кода:

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, установленным на true при запуске и не сбрасываемым на false после присвоения null для свойство Configuration (что для меня было бы наиболее разумным). Мой вопрос заключается в том, пропускаю ли я что-то в этом процессе, или это действительно тот случай, когда нет способа (конечно, без использования Reflection) заставить NLog переконфигурировать себя с нуля и повторить процесс (1).

1 Ответ

0 голосов
/ 23 февраля 2012

Во-первых, позвольте мне спросить, что вы пытаетесь достичь? Это больше упражнение, чтобы понять, как работает NLog? Есть что-то конкретное, что пытаются достичь? Если последнее, возможно, уже есть санкционированный способ делать то, что вы хотите сделать.

Сказав это, у меня есть идея (которую я не пробовал), которая может сработать.

При взгляде на источник NLog кажется, что вы могли бы сделать что-то вроде этого:

LogManager.Configuration = new LoggingConfiguration();

Назначение новой конфигурации LoggingConfiguration выглядит так, как будто это приведет к тому, что процесс настройки регистрации будет запущен с нуля. Я не уверен, что произойдет с любыми регистраторами, которые могли быть получены, пока действовала старая конфигурация. Будут ли они еще действительны? Они вообще что-нибудь сделают?

...