2016-10-06 4 views
1

Ich schreibe einen Windows-Dienst und dachte, es wäre besser, einen neuen Logger in jedem Anruf von OnStart, im Service-Konstruktor zu erstellen. Auf diese Weise hoffe ich, dass Änderungen an der Konfigurationsdatei wirksam werden, wenn der Dienst neu gestartet wird, ohne den Prozess und alle damit verbundenen Probleme irgendwie neu starten zu müssen.Speichert NLog die Daten von NLog.config?

Dann fiel mir ein, dass NLog die Datei nur einmal lesen könnte, wenn es LogManager oder etwas initialisiert, und meine Vorsichtsmaßnahme ist sinnlos.

Antwort

1

Wenn Sie die Konfigurationsdatei (nlog.config) verwenden, können Sie autoReload aktivieren.

<nlog autoReload="true"> 
    ... 
</nlog> 

Wenn aktiviert, und es gibt eine Änderung der nlog.config wird die Konfiguration automatisch ohne ein Dienst Neustart wieder geladen werden. Siehe Automatic reconfiguration.

Wenn Sie NLog problematisch konfigurieren (also ohne die Datei nlog.config), müssen Sie nach einer Änderung in der Konfiguration LogManager.ReconfigExistingLoggers aufrufen.

und dachte, es wäre besser, einen neuen Logger in jedem Aufruf von OnStart zu erstellen, vs. im Service ctor.

In beiden Fällen spielt es keine Rolle, wann die neue Logger erstellt wird.

+0

Hey, danke, Mann! – ProfK