상세 컨텐츠

본문 제목

log4j2 설정 이해(loggers, level)

개념정리

by H_Develop 2023. 6. 26. 11:15

본문

Loggers
- 로깅 작업의 주체, 각 패키지 별, 로그 정책을 설정 할 수 있다.
- <Loggers> : 하위 요소로 <Root>, <logger> 가 존재한다.
- <Root> : 일반적인 로그 정책에 대해 정의를 할 수 있으며, 반드시 한개를 정의해야한다.
- <Logger> : 여러개 정의를 할수 있으며 name에 정의하는 패키지 범위를 설정 할 수 있다.
- <AppenderRef> : 위에 정의한 Appender 의 참조를 지정 한다. Root, Logger 태그 안에서만 사용가능
- name : 로그의 name, 로그를 정의할 패키지의 범위
- level : 로그의 Level(위에 log level 참고)
- additivity : 중복로깅여부

 

  1. OFF
    가능한 가장 높은 순위이며 로깅을 해제
  2. FATAL
    조기 종료를 유발하는 심각한 오류. 콘솔에 즉시 표시 될 것으로 예상
  3. ERROR
    런타임 오류 또는 예기치 않은 조건. 콘솔에 즉시 표시
  4. ̶W̶A̶R̶N̶
    더 이상 사용되지 않는 API 사용, ‘거의’오류에 가까운 상황.
    상태 콘솔에 즉시 표시
  5. INFO
    런타임 이벤트. 콘솔에 즉시 보일 것으로 예상되므로 보수적이며 최소한으로 유지
  6. DEBUG
    시스템을 통한 흐름에 대한 자세한 정보.
    로그에만 쓰여질 것으로 예상, 일반적으로 응용 프로그램에서 기록한 대부분의 줄은 DEBUG로 작성.
  7. TRACE
    가장 자세한 정보. 이것들은 로그에만 쓰여질 것으로 예상됩니다.

https://pakss328.medium.com/log4j2-xml-%EC%84%A4%EC%A0%95-a3aa0d1bea2f

 

대개 DEBUG INFO WARN ERROR FATAL만 사용하는 듯 하다.

 

 

 

configuration status = "DEBUG"

log4j2.xml 의 내부 설정을 로드하면서 발생하는 DEBUG 이상의 로그들을 출력중이다.

status를 info로 설정하면 아~~~무 로그도 출력되지 않는다.

그 이유는 log4j2.xml 설정파일을 로드할 때의 정보는 내부적으로 DEBUG레벨로 찍고 있기 때문이다.

INFO 레벨은 DEBUG레벨보다 상위의 레벨이기 때문에 로그가 찍히지 않게 된다.

 

그렇다면 log4j2.xml 파일을 로드할 때 문제가 생기도록 코드를 바꾼 후 status를 info로 설정한다면?

내부적으로 error 로그가 발생할 것이고, 이는 info 레벨보다 높기 때문에 로그가 찍힐 것이다.

테스트로 5번줄의 Appenders 태그 명을 Appenderss로 바꾼 후 실행시켰다.

제일 아랫줄의 ERROR test.LogTest 부분이 log4j2.xml 을 로드하면서 생긴에러이다.

configuration status ="info" And Appenders -> Appenderss

 

https://tlatmsrud.tistory.com/32

 

 

'개념정리' 카테고리의 다른 글

JAR WAR 차이점  (0) 2023.08.03
Cashing, Fetch  (0) 2023.06.23
FTP TCP SFTP FTPS  (0) 2023.06.23
용어정리  (0) 2023.02.23
DOM 객체, 계층 구조  (0) 2022.12.07

관련글 더보기