Comment configurer log4net pour un service Windows c #
J'ai un windows service où l'application.le fichier de configuration et le log4net.les fichiers de configuration sont séparés. L'enregistrement ne fonctionne pas.
Dans mon application.fichier de config, j'ai le texte suivant dans la section:
<add key="log4net.Config" value="log4net.config"/>
Cela fonctionne si dans la valeur que je spécifier un chemin d'accès absolu à la log4net.fichier de configuration.
Dois-je fournir un chemin d'accès absolu à la log4net.cong? À la fois le log4net.de configuration et d'application.fichier de configuration sont dans le même dossier que l'exécutable.
des idées?
Parag
source d'informationauteur
Vous devez vous connecter pour publier un commentaire.
C'est peut-être utile (Le déplacement de vos Log4Net configuration web.config avec ASP.NET les sites web 2.0.).
Ici sont les pièces qui pourraient vous intéresser:
À assurez-vous que le
log4net.config
est toujours là, ajoutez le log4net.config pour le csproject, etCopyAlways
. Il devrait être présenté dans le dossier de débogage.Vous pouvez utiliser un script pour tout copier sur un dossier de version, ou si vous utilisez MS projet de configuration, vous devez ajouter manuellement ce fichier dans le projet. Une référence sera alors ajouté.
Pour Windows service le répertoire courant est Windows\system32 -- et XmlConfigurator.Configurer() utilise FileInfo qui traite des chemins relatifs par rapport au répertoire courant. Donc, log4net est à la recherche de son fichier de configuration dans Windows\system32.
XmlConfiguratorAttribute d'autre part les utilisations de l'application BaseDirectory, c'est pourquoi il fonctionne toujours.
Alternativement, vous pouvez effectuer les opérations suivantes avant d'appeler XmlConfigurator.Configurer() :