¿Cómo se puede apagar rápidamente todas las salidas Log4J usando un archivo log4j.properties
?Deshabilitar Log4J Salida en Java
Respuesta
nivel ajustado en OFF (en lugar de depuración, información, ....)
Usted puede cambiar el nivel en OFF que debe deshacerse de todo el registro. De acuerdo con el sitio web log4j, los niveles válidos en orden de importancia son RASTREO, DEPURACIÓN, INFORMACIÓN, ADVERTENCIA, ERROR, FATAL. Hay one undocumented level llamado DESACTIVADO, que es un nivel más alto que FATAL, y desactiva todo el registro.
También puede crear un registrador de raíz extra para registrar nada (nivel desactivado), de modo que pueda cambiar fácilmente los registradores de raíz. Here's a post para que comiences con eso.
Es posible que también desee leer el Log4J FAQ, porque creo que apagar todos los registros puede no ser de ayuda. Ciertamente, no acelerará mucho su aplicación, ya que el código de registro se ejecuta de todos modos, hasta el punto donde log4j decide que no necesita registrar esta entrada.
log4j.rootLogger=OFF
Si desea desactivar el registro mediante programación a continuación, utilizar
List<Logger> loggers = Collections.<Logger>list(LogManager.getCurrentLoggers());
loggers.add(LogManager.getRootLogger());
for (Logger logger : loggers) {
logger.setLevel(Level.OFF);
}
Especificó "usar un archivo log4j.properties" de todos modos es muy útil. –
Gracias, justo lo que quería. –
¿Y cómo revierte los registradores a la configuración anterior (mediante programación)? –
cambio de nivel a lo que desea. (Estoy usando Log4j2, versión 2.6.2). Esta es la forma más simple, el cambio a <Root level="off">
Por ejemplo: File log4j2.xml
entorno de desarrollo
<?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>
entorno de producción
<?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>
Además, también es posible convertir cerrar la sesión mediante programación:
Logger.getRootLogger().setLevel(Level.OFF);
O
Logger.getRootLogger().removeAllAppenders();
Logger.getRootLogger().addAppender(new NullAppender());
Esta es la mejor solución para aplicaciones independientes eso no debería registrar nada. – basZero
- 1. ninguna salida log4j en Grails aplicación
- 2. log4j postgres en Java EE
- 3. Eliminando configuración de log4j innecesaria salida
- 4. Deshabilitar el búfer de salida en PHP
- 5. Registro de Java vs Log4J
- 6. java log4j elegir qué archivo registrar en
- 7. Cómo deshabilitar el registro de log4j desde el código de Java
- 8. Cómo cambiar el color de la salida de registro log4j
- 9. Cómo deshabilitar el almacenamiento en búfer de salida en Process.StandardOutput
- 10. Cómo deshabilitar javax.swing.JButton en java?
- 11. Captura de la salida de Log4j al ejecutar pruebas TestNG
- 12. ¿Deshabilitar la salida de LogCat en la versión apk?
- 13. propiedades Cargando log4j de un paquete en java
- 14. Profundidad de excepción en log4j
- 15. java API de registro, deshabilitar el registro a la salida estándar
- 16. log4j alineación
- 17. Java Runtime.exec() salida asíncrona
- 18. log4j soporte en Android
- 19. configuración log4j en EAR
- 20. Comparar log4j y Logger
- 21. Diferencia en la salida en Java
- 22. ¿Cómo implementar/usar log4j?
- 23. XSL - ¿Cómo deshabilitar el escape de salida para un atributo?
- 24. Deshabilitar mensajes WebView desde la salida de logcat
- 25. log4j truncates stacktrace
- 26. log4j stackoverflow
- 27. Tubería de entrada y salida en Java
- 28. salida como codificación UTF-8 en Java
- 29. Generar salida de formato formateado en Java
- 30. Capture xsl: mensaje de salida en java
Y debajo de TRACE es el "nivel" TODO, lo que es una especie de lo contrario. En segundo lugar, podría ser más rápido si el programa hace algo así como "if (logger.isDebugEnabled()) logger.debug (...)" –
El OP no menciona el rendimiento como la razón para querer apagar todos los registros. Cuando he necesitado hacer esto, es porque muchas bibliotecas sufren de una especie de disentería de registro, que no produce información útil y quiero una forma abreviada de manejarla. –