2017-09-04 9 views
2

콘솔 응용 프로그램에서 log4j2의 자동 초기화를 비활성화하는 방법은 무엇입니까? 서블릿 컨텍스트에서 비활성화 할 수 있다는 것을 알고 있습니다.콘솔 응용 프로그램에서 log4j2의 자동 초기화를 비활성화하는 방법은 무엇입니까?

<context-param> 
    <param-name>isLog4jAutoInitializationDisabled</param-name> 
    <param-value>true</param-value> 
</context-param> 

그러나 콘솔 응용 프로그램에서는 어떻습니까? 나는 다음과 같이 추측한다 :

System.setProperty("isLog4jAutoInitializationDisabled", "true"); 

나는 시험해 보았다.

답변

1

Log4j2가 초기화 될 때 구성이 필요합니다. 기본 구성에서는 모든 ERROR 메시지가 콘솔에 기록되고 다른 메시지는 무시됩니다.

이것은 일반적으로 원하는 것이 아니며 필요에 맞는 구성을 제공하여 변경할 수 있습니다. 이것을 수행하는 가장 일반적인 방법은 파일 log4j2.xml을 생성하고 클래스 패스에 넣는 것입니다. 구성 파일 syntax은 많은 예제가있는 사용 설명서에 잘 설명되어 있습니다. 특히 appenderslayouts 페이지가 관심의 대상이 될 수 있습니다.

Log4j2는 JSON, YAML 및 속성 형식 (Log4j-1.2 형식과 다른 구성 파일)의 구성 파일도 지원하지만 설명서의 대부분은 xml입니다.

마지막으로 시스템 속성이 log4j.configurationFile 인 구성 파일의 위치를 ​​지정할 수 있으므로 이 클래스 경로에 있어야합니다.

구성에 문제가있는 경우 구성 파일의 맨 위에 <Configuration status="trace">을 사용하여 내부 Log4j2 상태 메시지를 콘솔에 인쇄하십시오.

Log4j 2.9부터는 시스템 속성 log4j2.debug (값 없음)을 지정하여 내부 상태 로깅을 활성화 할 수 있습니다. 문제 해결에 도움이됩니다.