La meilleure façon de définir dynamiquement un appender chemin d'accès au fichier

Je suis en train d'essayer de trouver quelqu'un de plus malin que moi afin de valider certains de la syntaxe que j'ai écrit jusqu'. L'idée est de configurer le nom de fichier de mon RollingFileAppender au nom de l'assemblée, afin de le rendre plus ré-utilisable pour mes projets.

J'ai vu cette précédente, SI bien que l'article mais ce n'était pas exactement en mesure de répondre à ma question...

J'ai eu un dickens de temps à essayer de comprendre les composantes internes de Log4net et c'est ce que j'ai trouvé (résidant dans le monde.asax fichier - méthode 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();
  }
}

Quelqu'un peut me dire, "c'est horrible", ou "cela devrait fonctionner très bien"? Aussi, si j'ai mis le fichier dynamiquement puis-je encore attendre la log4net comportement pour faire pivoter les fichiers basé sur le log4net.fichier de configuration des paramètres?

Beaucoup apprécié!

InformationsquelleAutor Dscoduc | 2009-02-21