Инициализируйте log4Net как можно раньше с помощью NUnit

Мне интересно, каков наилучший способ инициализации log4Net в проекте NUnit. Конечно, я хочу вызвать код инициализации (т.е.XmlConfigurator.Configure()), как только я смогу получить как можно больше ранних записей в журнале. Но так как мой проект выполняется через NUnit, у меня мало контроля над точкой входа.

Согласно документации NUnit, сначала нужно вызвать несколько конструкторов, а затем метод, помеченный[SetUp] атрибут в классе, отмеченном[TestFixtureSetup].

Итак, во-первых, я создал статический вспомогательный класс, который я могу вызывать несколько раз без проблем.

  public static class LoggingFacility
  {
    private static bool _loggerIsUp = false;

    public static void InitLogger()
    {
      if (_loggerIsUp == false)
        XmlConfigurator.ConfigureAndWatch(f);

      _loggerIsUp = true;
    }
  }

Затем я сделал все мои[TestFixtureSetup] унаследовать один, который делает почти ничего, кроме вызоваLoggingFacility.initLogger(), Но это все же оставляет все конструкторы, которые запускаются ранее, в порядке, который я могу принять только случайным. Более того, он, вероятно, выполнит некоторые статические инициализации, прежде чем я смогу выполнить какой-то код.

На самом деле, как я вижу в своем журнале, первые 4 секунды или около того времени выполнения полностью не записываются.

Значит ли это, что мне придется позвонитьInitLogger() в каждом конструкторе и запретить использование любого статического инициализатора? Это тяжелая работа!

Кто-нибудь знает магический трюк с этим?

Ответы на вопрос(2)

Ваш ответ на вопрос