log4net nicht schauen Sie sich meine app.config
Konfiguriert habe log4net zu beobachten, auf änderungen an der app.config-Datei.
[assembly: log4net.Config.XmlConfigurator(Watch = true)]
Wenn ich meine app, und ändern Sie Dinge in der config-Datei werden diese änderungen nur wirksam, wenn ich neu starten meine app. Warum könnte dies sein?
Ist es auch ein Weg, zu sagen, log4net zu beobachten, auf änderungen in der app.config? Wie:
<appender name="FileAppender" type="log4net.Appender.FileAppender" >
<watch value="true" />
</appender>
------------- BEARBEITEN -------------
Versuchte ich nun eine separate config-Datei: log4net.config.
Es sieht wie folgt aus:
<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>
In meine assemblyInfo.cs schrieb ich Folgendes:
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]
Die Klasse, die Protokolle der Datei sieht wie folgt aus:
ILog myLogger = LogManager.GetLogger(typeof(Form1));
myLogger.Debug("test");
Diese funktioniert wie die alte version. logfile-Einträge werden gemacht, aber wenn ich meine log4net.config während der Laufzeit werden diese änderungen nicht übernommen.... "Watch=true" sollte diese Funktion aktivieren, richtig?
InformationsquelleAutor Fabian | 2011-10-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
HA!, Ich war gerade auf den gleichen Fehler, ausführen von unit-tests, die erfordern, dass die Protokollierung.
Das hinzufügen dieser Zeile fest:
Meine App.config:
Ich auch haben:
auch nach dem aufrufen von log4net.Config.XmlConfigurator.Configure(); nachdem Sie diese änderungen?
leider ja. kann es nicht erklären.... Bearbeiten können Sie Ihre config-Datei während der Laufzeit ? zum Beispiel die Konvertierung Muster, und diese änderungen sofort wirksam werden?..
Ich glaube nicht, dass es Uhren, die im Abschnitt kontinuierlich, siehe: stackoverflow.com/questions/436700/..., Wenn Sie die refresh-Abschnitt, dass es Gespräche über und call .Konfigurieren() aktualisieren Einstellungen.
InformationsquelleAutor maxfridbe
Laut log4net Dokumentation, die Uhr-Funktion funktioniert nicht für die Anwendung Konfigurationsdateien (app.config, web.Konfiguration):
Also, wenn Sie brauchen, der log4net Konfiguration re-konfigurierbar ist, müssen Sie es in einer separaten XML-Datei und die Anwendung muss über ausreichende Berechtigungen, die Datei zu Lesen:
InformationsquelleAutor Igor Brejc
Obwohl ich bin furchtbar spät zur party - hier ist, was mir geholfen: eine einfache Aufforderung an
log4net.LogManager.GetLogger("DUMMY");
ganz am Anfang von meinem Programm. Ich habe es in der ersten Zeile von Programm.cs's Main() Methode. Keine Notwendigkeit, ordnen Sie den logger mit jedem beliebigen Objekt, nur eine höfliche Anfrage, um log4net zu Lesen, der assembly-Attribute wie gesagt hier.InformationsquelleAutor Lemmes