Wie kann man alle Log4J Ausgabe mit einer log4j.properties
Datei schnell ausschalten?Log4J-Ausgabe in Java deaktivieren
Antwort
Set Ebene auf OFF (statt DEBUG, INFO, ....)
Sie können den Pegel auf OFF ändern, die von allen Protokollierung loswerden sollte. Gemäß der log4j-Website sind gültige Ebenen in der Reihenfolge ihrer Wichtigkeit TRACE, DEBUG, INFO, WARN, ERROR, FATAL. Es gibt one undocumented level namens OFF, die eine höhere Stufe als FATAL ist, und deaktiviert alle Protokollierung.
Sie können auch einen zusätzlichen Root-Logger erstellen, um nichts zu protokollieren (Level OFF), so dass Sie Root-Logger einfach wechseln können. Here's a post, um damit anzufangen.
Sie könnten auch die Log4J FAQ, lesen, weil ich denke, alle Protokollierung deaktivieren kann nicht helfen. Es wird sicherlich Ihre App nicht so sehr beschleunigen, da der Logging-Code sowieso ausgeführt wird, bis zu dem Punkt, an dem log4j entscheidet, dass er diesen Eintrag nicht protokollieren muss.
log4j.rootLogger=OFF
Wenn Sie programmatisch dann
List<Logger> loggers = Collections.<Logger>list(LogManager.getCurrentLoggers());
loggers.add(LogManager.getRootLogger());
for (Logger logger : loggers) {
logger.setLevel(Level.OFF);
}
Er hat angegeben, "eine log4j.properties-Datei zu verwenden", trotzdem ist es sehr nützlich. –
Danke, genau was ich wollte. –
Und wie stellen Sie die Logger auf die vorherige Einstellung (programmgesteuert) zurück? –
ändern Ebene verwenden Protokollierung deaktivieren möchten, was Sie wollen. (Ich verwende Log4j2, Version 2.6.2). Das ist einfachste Weg, Änderung <Root level="off">
Zum Beispiel: Die Datei log4j2.xml
Entwicklungsumgebung
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</Console>
<Console name="SimpleConsole" target="SYSTEM_OUT">
<PatternLayout pattern="%msg%n"/>
</Console>
</Appenders>
<Loggers>
<Root level="error">
<AppenderRef ref="Console"/>
</Root>
</Loggers>
<Loggers>
<Root level="info">
<AppenderRef ref="SimpleConsole"/>
</Root>
</Loggers>
</Configuration>
Produktionsumgebung
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</Console>
<Console name="SimpleConsole" target="SYSTEM_OUT">
<PatternLayout pattern="%msg%n"/>
</Console>
</Appenders>
<Loggers>
<Root level="off">
<AppenderRef ref="Console"/>
</Root>
</Loggers>
<Loggers>
<Root level="off">
<AppenderRef ref="SimpleConsole"/>
</Root>
</Loggers>
</Configuration>
Darüber hinaus ist es auch möglich zu machen programmgesteuert abmelden:
Logger.getRootLogger().setLevel(Level.OFF);
Oder
Logger.getRootLogger().removeAllAppenders();
Logger.getRootLogger().addAppender(new NullAppender());
Dies ist die beste Lösung für eigenständige Apps das sollte nichts protokollieren. – basZero
- 1. Deaktivieren Keylistener in Java
- 2. Wie javax.swing.JButton in Java deaktivieren?
- 3. Java-Sicherheitsmechanismus vollständig deaktivieren?
- 4. Java Filehandler deaktivieren Logfolge
- 5. System.out für Geschwindigkeit in Java deaktivieren
- 6. Deaktivieren von Mutabilität in einer Java-Liste
- 7. Deaktivieren von TLSv1.2 in Java 8
- 8. Java Graphics deaktivieren XOR-Modus
- 9. AppEngine (Java) -Sitzungen für bestimmte Anfragen deaktivieren
- 10. So deaktivieren Sie den Java-Erweiterungsmechanismus
- 11. syntastic - Automatische Kompilierung von Java deaktivieren
- 12. Jammit deaktivieren Java-Komprimierung im Produktionsmodus
- 13. Spring-Sicherheit über Java-Konfiguration deaktivieren?
- 14. Wie mongoDB Java Treiber Protokollierung zu deaktivieren?
- 15. Java-Servlet, wie Caching von Seite deaktivieren
- 16. Deaktivieren/Zeichen Schlüsselcode 111 mit Java-Skript
- 17. Textfeld deaktivieren in NetBeans
- 18. Deaktivieren Sie "Alle Dateien" bei Verwendung von FileNameExtensionFilter in Java
- 19. Eclipse - Deaktivieren der Kompilierung von XML-Dateien in Java-Perspektive
- 20. Deaktivieren Sie automatisch ändernden Objektwert in Java Linkedlist
- 21. Deaktivieren Sie die Protokollierung in Java zur Kompilierzeit
- 22. Java Swing: Aktivieren/Deaktivieren aller Komponenten in JPanel
- 23. java fileChooser deaktivieren Funktionen und Optionen in der Hauptwerkzeugleiste
- 24. Wie WARN zu deaktivieren, wenn auf SQL-Datenbank in Java
- 25. Java PhantomJSDriver deaktivieren alle Protokolle in der Konsole
- 26. Tastenkombinationen in Linux (Ubuntu) deaktivieren
- 27. So deaktivieren Sie die Codeanalyse in Upsource
- 28. So deaktivieren Sie Breadcrumbs in Eclipse
- 29. deaktivieren Hot-Code ersetzen für den Eclipse-Java-Debugger
- 30. Quarzauftrag in Grails deaktivieren
Und unter TRACE ist das "Niveau" ALL, was für das Gegenteil ist. Zweitens könnte es schneller sein, wenn das Programm etwas wie "if (logger.isDebugEnabled()) logger.debug (...)" tut. –
Das OP erwähnt Leistung nicht als der Grund, die gesamte Protokollierung ausschalten zu wollen. Wenn ich das tun muss, dann deshalb, weil viele Bibliotheken unter einer Art von Logging-Dysenterie leiden, die keine nützlichen Informationen liefert und ich möchte, dass ich mit ihnen umgehen kann. –