Demander à log4net d’utiliser un fichier de configuration d’application pour les données de configuration

Je voudrais stocker les données de configuration log4net dans mon fichier application.config. Sur la base de ma compréhension de la documentation, j’ai fait ce qui suit:

  1. Ajouter une référence à log4net.dll

  2. Ajoutez la ligne suivante dans AssemblyInfo.cs:

    [assembly: log4net.Config.XmlConfigurator(Watch = true)] 
  3. Initialiser l’enregistreur comme suit:

     private static readonly ILog log = LogManager.GetLogger(typeof(frmWizard)); 
  4. J’ai le code suivant dans mon app.config:

   

Cependant, lorsque je lance l’application, j’obtiens l’erreur suivante sur la console:

Aucun appender nommé [Consoleappender] n’a pu être trouvé.

Comment puis-je obtenir log4net pour lire les parameters du fichier de configuration?

Merci!

Ajouter une ligne à votre app.config dans l’élément configSections

  

Ensuite, ajoutez la section log4Net, mais déléguez le fichier de configuration log4Net actuel ailleurs …

  

Dans votre code d’application, lorsque vous créez le journal, écrivez

 private static ILog GetLog(ssortingng logName) { ILog log = LogManager.GetLogger(logName); return log; } 

À partir de la configuration affichée dans la question, il n’ya qu’un seul appender configuré et il s’appelle “EventLogAppender”. Mais dans la configuration de root, l’auteur fait référence à un appender nommé “ConsoleAppender”, d’où le message d’erreur.

Avez-vous essayé d’append un gestionnaire de configsection à votre app.config? par exemple

 

Tous les noms d’appender doivent être reflétés dans la section racine.
Dans votre cas, le nom de l’appender est EventLogAppender, mais dans la section il est nommé ConsoleAppender . Ils doivent correspondre.

Vous pouvez append plusieurs appenders à votre configuration de journal, mais vous devez enregistrer chacun d'eux dans la section .

   

Vous pouvez également vous reporter à la documentation apache sur la configuration de log4net.

Je soutiens totalement la réponse de @Charles Bretana. Cependant, si cela ne fonctionne pas, assurez-vous qu’il n’y a qu’un seul élément

ET que configSections est le premier enfant de l’élément racine :

configsections doivent être le premier élément de votre app.Config après la configuration: