Configurando anexos do log4net via arquivo XML * e * código

Comecei a brincar com o log4net hoje e até agora, eu realmente gosto. Para preservar nossa funcionalidade de log atual, o aplicativo precisa criar um novo arquivo de log sempre que o aplicativo é iniciado. O nome do arquivo de log possui a data e a hora codificadas. Atualmente, eu tenho o log4net configurado através de umXmlConfigurator, o que funciona muito bem, exceto que o nome do arquivo para o meuRollingFileAppender é codificado no arquivo XML de configuração.

Eu gostaria de continuar usando oXmlConfigurator, mas depois de ligarConfigure(), Eu quero chegar noRollingFileAppender e, no código, altere o valor do arquivo para ser uma sequência gerada dinamicamente. A amostradocumentação online parece estar inoperante agora, mas examinei a referência do SDK e parece que eu poderia usar oHeirarchy eGetAppenders() para fazer o que eu preciso fazer. Estou no caminho certo?

Ok, fiz uma facada nisso e tentei o seguinte código, que não funcionou:

private static readonly ILog _log = LogManager.GetLogger(typeof(GUI));
// in the config file, I've set the filename to example.log, and it works
XmlConfigurator.Configure(new FileInfo("log_config.xml"));
Hierarchy hierarchy = LogManager.GetRepository() as Hierarchy;
if(hierarchy != null) {
    // get the appenders
    IAppender[] appenders = hierarchy.GetAppenders();
    // change the filename for the RollingFileAppender
    foreach( IAppender a in appenders) {
        RollingFileAppender rfa = a as RollingFileAppender;
        if(rfa == null)
            continue;
        rfa.File = "newfile.log"; // no runtime error, but doesn't work.
    }
}
_log.Info("Application started");

questionAnswers(2)

yourAnswerToTheQuestion