Java에서 Log4j를 사용하여 고유한 로깅 수준을 만드는 방법(Log4j 2 구성)

게시 됨: 2017-07-26
Java에서 Log4j 2를 사용하여 자신만의 로깅 수준을 만드는 방법

Log4j에 자신만의 로깅 레벨을 추가해야 하는 경우 다음과 같이 하면 됩니다. Apache Log4j 2를 사용하여 Level , Custom Log Levels 에서 확장되는 고유한 클래스를 생성해야 합니다.

Log4j 는 간단하고 유연한 logging framework 입니다. 로깅은 개발자에게 애플리케이션 실패에 대한 자세한 컨텍스트를 제공합니다. log4j를 사용하면 애플리케이션 바이너리를 수정하지 않고 런타임에 로깅을 활성화할 수 있습니다.

log4j 패키지는 이러한 명령문이 높은 성능 비용을 발생시키지 않고 제공된 코드에 남아 있을 수 있도록 설계되었습니다.

Log4j에서 고유한 로깅 수준을 만드는 방법(Log4j 구성)

Log4j를 사용하면 로깅 요청을 여러 대상에 인쇄할 수 있습니다. log4j에서는 출력 대상을 appender 라고 합니다. 콘솔, 파일, GUI 구성 요소, 원격 소켓 서버에서 JMS에 이르기까지 다양합니다.

Jar 파일이 필요합니다.

다음은 Maven 종속성입니다.

Log4j를 최신 버전으로 업데이트

CVE-2021-44228: Apache Log4j2 <=2.14.1 구성, 로그 메시지 및 매개변수에 사용된 JNDI 기능은 공격자가 제어하는 ​​LDAP 및 기타 JNDI 관련 엔드포인트로부터 보호하지 않습니다.

log4j 2.16.0부터 이 동작은 기본적으로 비활성화되어 있습니다.

/resources 폴더 아래에 log4j.xml 파일을 넣어야 합니다.

리소스 폴더의 log4j.xml 파일

다음은 샘플 Java 코드입니다.

  • Java의 사용자 정의 로그 수준에 대한 Log4j 로깅
  • log4j에서 자신만의 로깅 레벨 만들기
  • log4j 사용자 정의 로거 예제

CrunchifyLog4jLevel.java

다른 사람은 다음을 읽어야 합니다.

  • 명령줄을 통해 Apache Tomcat 서버 중지를 시작하는 방법은 무엇입니까? (Windows 서비스로 설정)
  • Eclipse에서 간단한 웹 서비스 및 웹 서비스 클라이언트 생성 및 배포

다음은 log4j.xml 파일의 내용입니다.

CrunchifyLog4jLevelTest.java

테스트 프로그램을 실행하면 Eclipse's Console 에 아래와 같은 유형의 결과가 표시되어야 합니다.

로그 수준에 지정하는 int 값은 중요합니다. 여기에서 " CRUNCHIFY " 로그 수준이 DEBUG 수준보다 높지만 log4j가 제공하는 TRACE 수준보다 낮도록 정의했습니다.

따라서 카테고리( log4j.xml 파일에서)에서 우선 순위 수준을 DEBUG로 설정할 때마다 CRUNCHIFY 수준 로그는 로그 파일에 기록 되지 않습니다 .