elhor maneira de definir dinamicamente um caminho de arquivo do append

Estou tentando encontrar alguém mais inteligente que eu para validar alguma sintaxe que escrevi. A ideia é configurar o nome do arquivo do meu RollingFileAppender com o nome do assembly para torná-lo mais reutilizável para meus projeto

Eu tenho vistoEste artigo anterior do SO mas não foi exatamente capaz de responder à minha pergunta ...

Eu passei um tempão tentando entender os componentes internos do Log4net e foi isso que eu criei (residindo no arquivo Global.asax - método Application_Start):

// Bind to the root hierarchy of log4net
log4net.Repository.Hierarchy.Hierarchy root = 
  log4net.LogManager.GetRepository() 
    as log4net.Repository.Hierarchy.Hierarchy;

if (root != null)
{
  // Bind to the RollingFileAppender
  log4net.Appender.RollingFileAppender rfa = 
    (log4net.Appender.RollingFileAppender)root.Root.GetAppender("RollingLogFileAppender");

  if (rfa != null)
  {
    // Set the file name based on the assembly name
    string filePath = 
      string.Format("~/App_Data/{0}.log", GetType().Assembly.GetName().Name);

    // Assign the value to the appender
    rfa.File = Server.MapPath(filePath);

    // Apply changes to the appender
    rfa.ActivateOptions();
  }
}

Alguém pode me dizer 'isso é horrível' ou 'isso deve funcionar bem'? Além disso, se eu definir o arquivo dinamicamente, ainda posso esperar que o comportamento do log4net gire os arquivos com base nas configurações do arquivo log4net.config?

Muito apreciado

questionAnswers(4)

yourAnswerToTheQuestion