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