inicialização do log4net

Eu procurei muito por duplicatas, mas tenho que perguntar o seguinte, não importa quão básico possa parecer, para esclarecer de uma vez por todas!

Em um novo aplicativo do console usando a versão 1.2.10.0 do log4net no VS28KSP1 em W7 de 64 bits, tenho o seguinte código:

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");
        }
    }
}

No meuapp.config, Eu tenho:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
  </configSections>
  <log4net>
    <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
      <file value="Program.log" />
      <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
      <appendToFile value="true" />
      <rollingStyle value="Size" />
      <maxSizeRollBackups value="10" />
      <maximumFileSize value="1MB" />
      <staticLogFileName value="true" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="[%username] %date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
      </layout>
    </appender>

    <root>
      <level value="DEBUG" />
      <appender-ref ref="RollingFileAppender" />
    </root>
  </log4net>

</configuration>

Isso não escreve nada, a menos que eu adicione um atributo:

[ assembly:XmlConfigurator ]

Ou inicie explicitamente em Main ():

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

Isso levanta as seguintes questões:

Tenho quase certeza de que o vi trabalhando em algum lugar em alguma versão do log4net sem a adição do atributo assembly ou da chamada no Main. Alguém pode me garantir que não estou imaginando isso?Alguém pode, por favor, me apontar para onde, no documento, ele explicitamente declara que tanto a seção de configuração quanto o gancho de inicialização são necessários - esperançosamente com uma explicação de quando isso mudou, se foi?

Eu posso facilmente imaginar por que isso pode ser a política - ter a etapa de inicialização explícita para evitar surpresas etc., é só que eu pareço lembrar isso nem sempre sendo o caso ... (E normalmente eu tenho a configuração em um arquivo separado , que geralmente leva configurações fora da imagem)

questionAnswers(1)

yourAnswerToTheQuestion