Java에서 Log4J 출력 사용 불가능


Answers

프로그래밍 방식으로 로깅을 해제하려면 다음을 사용하십시오.

List<Logger> loggers = Collections.<Logger>list(LogManager.getCurrentLoggers());
loggers.add(LogManager.getRootLogger());
for ( Logger logger : loggers ) {
    logger.setLevel(Level.OFF);
}
Question

log4j.properties 파일을 사용하여 모든 Log4J 출력을 신속하게 끌 수있는 방법은 무엇입니까?




또한 프로그래밍 방식으로 로그 오프를 해제 할 수도 있습니다.

Logger.getRootLogger().setLevel(Level.OFF);

또는

Logger.getRootLogger().removeAllAppenders();
Logger.getRootLogger().addAppender(new NullAppender());



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

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

모든 로깅을 끄면 도움이되지 않을 것이라고 생각하기 때문에 Log4J FAQ 를 읽어 볼 수도 있습니다. log4j가이 항목을 기록 할 필요가 없다고 판단 할 때까지는 로깅 코드가 실행되기 때문에 확실히 앱의 속도가 향상되지는 않습니다.