log4net ne regarde pas mon application.config
J'ai configuré mon log4net de regarder sur des modifications apportées à l'application.fichier de configuration.
[assembly: log4net.Config.XmlConfigurator(Watch = true)]
Quand je lance mon application et de changer des choses dans le fichier de configuration, ces changements ne prennent effet que lorsque je redémarre mon application. Pourquoi pourrait-il être?
Est là aussi une façon de dire log4net de regarder sur des modifications dans l'application.config? Comme:
<appender name="FileAppender" type="log4net.Appender.FileAppender" >
<watch value="true" />
</appender>
------------- MODIFIER -------------
J'ai essayé d'utiliser une autre config-file: log4net.config.
Il ressemble à ceci:
<log4net>
<appender name="FileAppender" type="log4net.Appender.FileAppender">
<file value="c:\log.txt" />
<appendToFile value="true" />
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%d [%t] %-5p %c (line %L) -- %m%n" />
</layout>
</appender>
<root>
<appender-ref ref="FileAppender" />
</root>
</log4net>
Dans mon assemblyInfo.cs j'ai écrit ce qui suit:
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]
La classe qui enregistre le fichier ressemble à ceci:
ILog myLogger = LogManager.GetLogger(typeof(Form1));
myLogger.Debug("test");
Cela fonctionne comme l'ancienne version. journal des entrées, mais quand j'ai changer mon log4net.config lors de l'exécution, ces modifications ne sont pas appliquées.... "Regarder=true" doit activer cette fonction, non?
OriginalL'auteur Fabian | 2011-10-19
Vous devez vous connecter pour publier un commentaire.
HA!, Je viens de rencontrer le même problème, l'exécution des tests unitaires qui nécessitent l'enregistrement.
L'ajout de cette ligne fixe:
Mon Application.config:
Je fais aussi avoir ceci:
même après l'appel de log4net.Config.XmlConfigurator.Configurer(); après avoir fait ces changements?
malheureusement oui. ne peut pas expliquer cela.... pouvez-vous modifier votre fichier de configuration en cours d'exécution ? par exemple, la conversion de modèle, et ces changements immédiatement prendre effet?..
Je ne pense pas que c'montres de section continu, voir: stackoverflow.com/questions/436700/... Si vous ne l'actualisation de la section qu'il parle et d'appel .Configurer (), il peut actualiser les paramètres.
OriginalL'auteur maxfridbe
Selon log4net documentation, la Montre ne fonctionne pas pour les fichiers de configuration d'application (app.config, web.config):
Donc, si vous avez besoin de la log4net configuration pour être re-configurable, vous devez le placer dans un fichier XML distinct et votre application doit avoir les autorisations suffisantes pour lire le fichier:
OriginalL'auteur Igor Brejc
Même si je suis terriblement en retard à la partie - là, ce qui m'a aidé: un simple appel à
log4net.LogManager.GetLogger("DUMMY");
au tout début de mon programme. Je l'ai mis dans la première ligne de programme.cs's Main() méthode. Pas besoin de céder à l'enregistreur de données à n'importe quel objet, simplement une demande polie pour log4net à lire l'assemblée attributs comme indiqué ici.OriginalL'auteur Lemmes