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