Как можно быстро отключить весь вывод Log4J с помощью log4j.properties
файла?
87
Установите уровень на OFF (вместо DEBUG, INFO, ....)
Если вы хотите программно отключить ведение журнала, используйте
List<Logger> loggers = Collections.<Logger>list(LogManager.getCurrentLoggers());
loggers.add(LogManager.getRootLogger());
for ( Logger logger : loggers ) {
logger.setLevel(Level.OFF);
}
источник
Вы можете изменить уровень на OFF, что должно избавить от всех журналов. Согласно веб-сайту log4j, допустимые уровни в порядке важности следующие: TRACE, DEBUG, INFO, WARN, ERROR, FATAL. Есть один недокументированный уровень под названием OFF, который выше, чем FATAL, и отключает все журналы.
Вы также можете создать дополнительный корневой регистратор, чтобы ничего не регистрировать (уровень ВЫКЛЮЧЕН), чтобы вы могли легко переключать корневые регистраторы. Вот пост, чтобы вы начали с этого.
Вы также можете прочитать FAQ по Log4J, потому что я думаю, что отключение всех журналов может не помочь. Это, конечно, не сильно ускорит ваше приложение, потому что код ведения журнала выполняется в любом случае до момента, когда log4j решает, что ему не нужно регистрировать эту запись.
источник
Измените уровень на то, что хотите. (Я использую Log4j2 версии 2.6.2). Это самый простой способ изменить на
<Root level="off">
Например: Среда разработки файлов
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>
Производственная среда
<?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>
источник
Кроме того, также можно программно отключить выход из системы:
Или
Logger.getRootLogger().removeAllAppenders(); Logger.getRootLogger().addAppender(new NullAppender());
Они используют импорт:
import org.apache.log4j.Logger; import org.apache.log4j.Level; import org.apache.log4j.NullAppender;
источник