¿Cómo se pueden apagar rápidamente todas las salidas de Log4J usando un log4j.properties
archivo?
87
Establezca el nivel en OFF (en lugar de DEBUG, INFO, ....)
Si desea desactivar el registro mediante programación, utilice
List<Logger> loggers = Collections.<Logger>list(LogManager.getCurrentLoggers());
loggers.add(LogManager.getRootLogger());
for ( Logger logger : loggers ) {
logger.setLevel(Level.OFF);
}
fuente
Puede cambiar el nivel a APAGADO, lo que debería eliminar todos los registros. Según el sitio web log4j, los niveles válidos en orden de importancia son TRACE, DEBUG, INFO, WARN, ERROR, FATAL. Hay un nivel indocumentado llamado APAGADO que es un nivel más alto que FATAL y apaga todos los registros.
También puede crear un registrador raíz adicional para no registrar nada (nivel APAGADO), de modo que pueda cambiar fácilmente los registradores raíz. Aquí hay una publicación para que comiences con eso.
Es posible que también desee leer las preguntas frecuentes de Log4J, porque creo que desactivar todos los registros puede no ser de ayuda. Ciertamente no acelerará tanto su aplicación, porque el código de registro se ejecuta de todos modos, hasta el punto en que log4j decide que no necesita registrar esta entrada.
fuente
Cambia de nivel a lo que quieras. (Estoy usando Log4j2, versión 2.6.2). Esta es la forma más sencilla, cambie a
<Root level="off">
Por ejemplo: entorno de desarrollo de archivos
log4j2.xml
<?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>
fuente
Además, también es posible desactivar el cierre de sesión mediante programación:
O
Logger.getRootLogger().removeAllAppenders(); Logger.getRootLogger().addAppender(new NullAppender());
Estos utilizan importaciones:
import org.apache.log4j.Logger; import org.apache.log4j.Level; import org.apache.log4j.NullAppender;
fuente