2010-11-04 16 views

Antwort

11

Ich nehme an, Sie möchten die Anmeldung in Ihrer laufenden Anwendung durch Code umschalten. Ich habe es nicht ausprobiert, aber ich denke, dass die folgende Methode aufrufen Protokollierung deaktivieren sollte:

LogManager.GetRepository().ResetConfiguration(); 

wieder aktivieren Anmeldung würden Sie

XmlConfigurator.Configure(); 

(oder einer der anderen Methoden der XmlConfigurator) nennen .

Allerdings scheint es eine issue mit dem Aufruf der Configure Methode wiederholt. Ich weiß nicht, ob das ein Problem für Sie wäre, aber zumindest habe ich Sie gewarnt ...

+0

+1 Im Gegensatz zu den anderen Antworten schließt dieser Dateien Dateien, die der Logger geöffnet hält. –

+0

Das hat mir geholfen ... – Pritam

11

Sie können sie ausschalten, indem Sie die log4net Config-Datei ändern. Ändern Sie den Pegel des Appenders oder den globalen Pegel speziell auf "OFF". Siehe here für Details

+0

Log-Ebenen sind auf dem Logger definiert, nicht der Appender. Appender können Ebenenfilter verwenden. Es kann auch sein, dass ein Root-Logger Level OFF hat, aber ein Child Logger protokolliert immer noch etwas. –

+0

Ja, sicher, aber die Idee ist immer noch durch eine Konfigurationsdatei, nicht Code. – Kamarey

+0

Fair genug. Ich habe den Eindruck, dass dies nicht das ist, was das OP verlangt ... –

2

Angenommen, ich verstehe Ihre Frage, aus der FAQ: http://logging.apache.org/log4net/release/faq.html

Wie vollständig deaktiviere ich alle zur Laufzeit anmelden?

Wenn Sie den Schwellenwert für die Hierarchie auf Level OFF setzen, wird die gesamte Protokollierung von dieser Hierarchie deaktiviert. Dies kann in der log4net-Konfigurationsdatei erfolgen, indem das Attribut "threshold" des log4net-Konfigurationselements auf "OFF" gesetzt wird. Zum Beispiel:

Verwandte Themen