Подтвердить что ты не робот

Отключение выхода Log4J в Java

Как можно быстро отключить вывод Log4J с помощью файла log4j.properties?

4b9b3361

Ответ 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());