development

Java에서 Log4J 출력 비활성화

big-blog 2020. 9. 17. 08:24
반응형

Java에서 Log4J 출력 비활성화


파일을 사용하여 모든 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

레벨을 OFF로 변경하여 모든 로깅을 제거 할 수 있습니다. log4j 웹 사이트에 따르면 중요도 순으로 유효한 레벨은 TRACE, DEBUG, INFO, WARN, ERROR, FATAL입니다. 하나 개의 문서화되지 않은 수준의 모든 로그 오프 FATAL보다 높은 수준이다 OFF라고하고, 회전은.

추가 루트 로거를 생성하여 아무것도 기록하지 않도록 (레벨 OFF), 루트 로거를 쉽게 전환 할 수 있습니다. 여기에 시작하는 데 도움이 되는 게시물 이 있습니다.

모든 로깅을 끄는 것이 도움이되지 않을 수 있다고 생각하기 때문에 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());

참고 URL : https://stackoverflow.com/questions/571960/disabling-log4j-output-in-java

반응형