Kann mir jemand sagen, wie ich log4j in der Webumgebung deaktivieren kann? Wie kann in einer Produktionsumgebung, ohne den Code zu beeinflussen, der Protokollierungsmechanismus für unseren Code deaktiviert werden?
Antworten:
0 für die Antwort № 1Wahrscheinlich haben Sie die Datei log4j.properties, und Sie haben auch Berichtsebenen, sofern Ihre aktuelle Ebene dies ist ERROR
oder was das nicht ist OFF
, solltest du es ändern OFF
: als werden keine Berichte geschrieben.
hier ist ein Verknüpfung auf die verschiedenen Berichtsebenen erlaubt.
0 für die Antwort № 2
Sie müssen Ihr log4j ändern.Eigenschaftendatei. Wenn Sie das nicht können, können Sie das slf4j-Projekt verwenden, um Ihre log4j-Aufrufe in slf4j zu überführen. Sie können dann anweisen, dass Sie ein beliebiges Protokollierungs-Backend verwenden möchten. Entweder das slf4j-jdk14, mit dem es in die Standardprotokollierung übergeht, mit der die meisten Container umgehen, oder slf4j-nop, mit dem slf4j stumm geschaltet wird.
0 für die Antwort № 3
Wenn Sie eine XML-Konfiguration für log4j verwenden, können Sie die Unterstützung für "heiße" Konfigurationsänderungen aktivieren. Um die Konfiguration beispielsweise alle 10 Sekunden auf Änderungen abzufragen, laden Sie Ihre Konfiguration folgendermaßen:
DOMConfigurator.configureAndWatch("log4j.xml", 10000);
Auf diese Weise können Sie die Protokollebenen ändern, ohne den Code zu ändern und sogar ohne die Anwendung neu zu starten.
0 für die Antwort № 4
Das vollständige Deaktivieren der Protokollierung sollte sorgfältig abgewogen werden. Eine bessere Option wäre, die Protokollebene auf Paketebene in log4j.properties zu deaktivieren / ändern:
# Print only messages of level WARN or above in the package com.foo.
log4j.logger.com.foo=WARN