La mejor manera de establecer dinámicamente una ruta de archivo de apéndice

Estoy tratando de encontrar a alguien más inteligente que yo para validar alguna sintaxis que escribí. La idea es configurar el nombre de archivo de mi RollingFileAppender con el nombre del ensamblado para que sea más reutilizable para mis proyectos.

He vistoeste artículo SO anterior pero no fue exactamente capaz de responder mi pregunta ...

Me costó mucho entender los componentes internos de Log4net y esto es lo que se me ocurrió (que reside en el archivo 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();
  }
}

¿Alguien puede decirme, 'esto es horrible' o 'esto debería funcionar bien'? Además, si configuro el archivo dinámicamente, ¿puedo esperar que el comportamiento de log4net gire los archivos según la configuración del archivo log4net.config?

¡Muy apreciado

Respuestas a la pregunta(4)

Su respuesta a la pregunta