Maintenant Log4Net.config n'est pas chargé comme je l'ai déplacé ma classe wrapper à son propre projet de classe

StackOverflow https://stackoverflow.com/questions/1347429

Question

Quelqu'un peut-il aider, je l'ai utilisé log4net avec succès j'ai eu essentiellement une classe statique (emballage) dans mon projet Web et je charge ma config de fichier externe appelé log4net.config en ajoutant ceci dans AssemblyInfo.cs

    // log4net config file
    [assembly: log4net.Config.XmlConfigurator(ConfigFile = "Log4Net.config", Watch = true)]

All good !, maintenant je décidé de déplacer ma classe statique à son propre projet de classe afin que je puisse partager ma classe statique (emballage) avec d'autres projets.

Le log4net.config est encore dans le ProjetWeb mais bien sûr, ce ne est pas se charger maintenant, je peux dire cela parce que dans ma classe statique (maintenant son propre projet) je fais

          return LogManager.GetLogger("InfoLogger").IsInfoEnabled;

et IsInfoEnabled retourne faux, et rien est enregistré, le fichier .config n'est pas lu ...

Se souvenir de l'emballage de Log4net (classe statique) est dans son propre projet de classe, mais le fichier .config est dans le projet web ihave .. J'ai besoin comme ça parce que .config peut changer sur un projet par projet, mais généralement l'emballage ne sera pas.

Bien sûr, je pensais que je vais créer une classe abstraite et juste hériter dans mon projet Web et passer outre quoi que ce soit si je dois ... mais bien sûr vous ne pouvez pas hériter des classes ou même faire abstraction ..

Je suis sûr que quelqu'un d'autre est venu à travers cela, des idées? .. toute aide vraiment apprécié

Était-ce utile?

La solution

Vous avez besoin de mettre l'attribut d'assemblage XmlConfigurator dans la bibliothèque de classes qui enveloppe log4net. Vous pouvez garder votre fichier log4net.config dans le répertoire racine de votre application Web.

L'attribut de l'ensemble de XmlConfigurator est lu pour la première fois log4net est initialisé. Log4net balaye l'ensemble de l'appel pour trouver l'attribut.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top