Come è possibile disattivare rapidamente tutta l'emissione Log4J utilizzando un file log4j.properties
?Disabilitazione dell'output Log4J in Java
risposta
livello impostato su OFF (invece di DEBUG, INFO, ....)
È possibile modificare il livello su OFF, che dovrebbe sbarazzarsi di tutta la registrazione. Secondo il sito web log4j, i livelli validi in ordine di importanza sono TRACE, DEBUG, INFO, WARN, ERROR, FATAL. C'è one undocumented level chiamato OFF che è un livello superiore a FATAL e disattiva la registrazione.
È anche possibile creare un logger di root aggiuntivo per registrare nulla (livello OFF), in modo da poter passare facilmente i logger di root. Here's a post per iniziare.
Si potrebbe anche voler leggere il Log4J FAQ, perché penso che la disattivazione di tutto il logging potrebbe non essere d'aiuto. Non accelera sicuramente la tua app, perché il codice di registrazione viene comunque eseguito, fino al punto in cui log4j decide che non è necessario registrare questa voce.
log4j.rootLogger=OFF
Se si desidera disattivare la registrazione a livello di codice quindi utilizzare
List<Logger> loggers = Collections.<Logger>list(LogManager.getCurrentLoggers());
loggers.add(LogManager.getRootLogger());
for (Logger logger : loggers) {
logger.setLevel(Level.OFF);
}
Ha specificato "utilizzando un file log4j.properties" comunque è molto utile. –
Grazie, proprio quello che volevo. –
E come si ripristinano i logger sull'impostazione precedente (programmaticamente)? –
Change livello per ciò che si desidera. (Sto usando Log4j2, versione 2.6.2). Questo è il modo più semplice, passare alla <Root level="off">
Ad esempio: Il file log4j2.xml
Ambiente di sviluppo
<?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>
ambiente di produzione
<?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>
Inoltre, è anche possibile trasformare disconnettersi programmaticamente:
Logger.getRootLogger().setLevel(Level.OFF);
O
Logger.getRootLogger().removeAllAppenders();
Logger.getRootLogger().addAppender(new NullAppender());
Questa è la soluzione migliore per le app autonome che non dovrebbe registrare nulla. – basZero
- 1. Convalida disabilitazione convalida disabilitazione
- 2. Eclipse - Disabilitazione della compilazione di file XML in prospettiva Java
- 3. java log4j scegliere quale file registrare a
- 4. registrazione Java con log4j e log4j.yaml
- 5. registrazione Log4j per i livelli di log personalizzate in Java
- 6. proprietà Caricamento log4j da un pacchetto in java
- 7. come cambiare l'htmllayout in log4j
- 8. configurazione log4j in EAR
- 9. supporto log4j in Android
- 10. Disabilitazione del timer EJB (GlassFish 3.1, Java EE 6)
- 11. Mixing log4j 1.xe log4j 2
- 12. __LINE__ equivalente in Java?
- 13. Disabilitazione della convalida in @ Html.TextBoxFor in .Net
- 14. Come implementare/utilizzare log4j?
- 15. amCharts disabilitazione animazioni
- 16. Eccezione profondità nel log4j
- 17. ValidatorEnable non disabilitazione richiestofieldvalidator
- 18. jqGrid disabilitazione evidenziazione riga
- 19. Disabilitazione Textarea da CSS
- 20. Datagridview, pulsante disabilitazione/riga
- 21. Xcode 5, disabilitazione Storyboard
- 22. Disabilitazione animazione sequenze
- 23. Disabilitazione dell'evento On-click
- 24. Disabilitazione automatica di RichTextBox
- 25. Disabilitazione tasti sulla tastiera
- 26. php mysql_connect Avviso disabilitazione
- 27. performance log4j
- 28. Log4j dailyrollingfileappender file issues
- 29. log4j tronca stacktrace
- 30. log4j allineamento
E sotto traccia è il "livello" tutto, che una specie di l'opposto. In secondo luogo, potrebbe essere più veloce se il programma fa qualcosa come "if (logger.isDebugEnabled()) logger.debug (...)" –
L'OP non menziona le prestazioni come la ragione per voler disattivare tutta la registrazione. Quando ho bisogno di fare questo, è perché molte biblioteche soffrono di una sorta di dissenteria di registrazione, che non produce informazioni utili e voglio un modo a breve termine per affrontarlo. –