инициализация log4net

Мы искали дубликаты, но должны спросить следующее, каким бы простым оно ни казалось, чтобы раз и навсегда разобраться в этом!

В новом консольном приложении, использующем log4net версии 1.2.10.0 на VS28KSP1 на 64-битной W7, у меня есть следующий код: -

using log4net;
using log4net.Config;

namespace ConsoleApplication1
{
    class Program
    {
        static readonly ILog _log = LogManager.GetLogger(typeof(Program));
        static void Main(string[] args)
        {
            _log.Info("Ran");
        }
    }
}

В моемapp.config, Я имею:



  
    
  
  
    
      
      
      
      
      
      
      
      
        
      
    

    
      
      
    
  


Это ничего не пишет, если я не добавлю атрибут:

[ assembly:XmlConfigurator ]

Или явно инициализируйте его в Main ():

_log.Info("This will not go to the log");
XmlConfigurator.Configure();
_log.Info("Ran");

Это поднимает следующие вопросы: я

Я почти уверен, что яЯ видел, как это работает где-то в некоторой версии log4net без добавления атрибута сборки или вызова в Main. Может ли кто-нибудь заверить меня, что яя не представляю это?Может кто-то, пожалуйста, указать мне, где в документе прямо указано, что требуются и раздел конфигурации, и перехват инициализации - надеюсь, с объяснением того, когда это изменилось, если это произошло?

Я легко могу себе представить, почему это может быть политика - с явным шагом инициализации, чтобы избежать неожиданностей и т. Д.просто я, кажется, вспоминаю, что это не всегда так ... (И обычно у меня есть конфиг в отдельном файле, который обычно выводит конфигурации из картинки)

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

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