ebson

log4j 본문

DEV-STUDY, ETC.

log4j

ebson 2022. 8. 28. 13:19

1. log4j 

  • log4j는 자바기반 로깅 유틸리티로 Apache에서 만든 오픈소스 라이브러리임
  • log4j는 옵션 설정을 통해 선택적으로 로그를 남기거나 특정 파일에 로그를 생성하는 등 다양한 이점을 가지고 있음
  • 한번 설정을 해 놓으면 다시 설정하지 않아도 됨
  • System.out.println()코드를 작성하지 않고도 콘솔에 로그를 출력할 수 있음

 

2. log4j.xml

  • 프로젝트를 생성하면 자동으로 생성됨

 

3. log4j 레벨

  • FATAL → 아주 심각한 에러가 발생한 상태를 나타낸다
  • ERROR → 어떠한 요청을 처리하는 중 문제가 발생한 상태를 나타낸다
  • WARN → 프로그램의 실행에는 문제가 없지만, 향후 시스템 에러의 원인이 될 수 있는 경고성 메시지를 나타낸다.
  • INFO → 어떠한 상태변경과 같은 정보성 메시지를 나타낸다
  • DEBUG → 개발시 디버그 용도로 사용하는 메시지를 나타낸다
  • TRACE → 디버그 레벨이 너무 광범위한 것을 해결하기 위해서 좀 더 상세한 이벤트를 나타낸다
  • LEVEL VALUE값에 적혀있는 것들로서 순서대로 높은 레벨을 가지며, 출력 레벨 설정에 따라 설정 레벨 이상의 로그가 출력된다. 예를들어, 출력 레벨을 INFO라고 설정하면 WARN, ERROR, FATAL이 모두 출력된다.

 

4. log4j 구성요소

  • LOGGER → 출력할 메시지를 APPENDER에 전달한다
  • APPENDER → 전달된 로그를 어디에 출력할 지 결정한다. (콘솔출력, 파일기록, DB저장 등)
  • LAYOUT → 로그를 어떤 형식으로 출력할 것인지 결정한다

 

5. LOGGER

  • JDBC.SQLONLY → SQL문만을 로그로 남기며, PREPAREDSTATEMENT일 경우 관련된 ARGUMENT 값으로 대체된 SQL문이 보여진다
  • JDBC.SQLTIMING → SQL문과 해당 SQL을 실행시키는데 수행된 시간 정보를 포함한다
  • JDBC.AUDIT → RESULTSET을 제외한 모든 JDBC 호출 정보를 로그로 남긴다. 많은 양의 로그가 생성되므로 특별히 JDBC 문제를 추적해야 할 필요가 있는 경우를 제오하고는 사용을 권장하지 않는다
  • JDBC.RESULTSET → RESULTSET을 포함한 모든 JDBC 호출 정보를 로그로 남기므로 매우 방대한 양의 로그가 생성된다.

 

6. APPENDER

  • APPENDER는 로그를 출력할 위치, 출력 형식 등을 지정할 수 있다. 여러 종류의 APPENDER가 있지만 몇개가 대표적으로 쓰인다. 참고로 SMTPAPPENDER, DBAPPENDER 등을 이용하면 로그를 원격 위치에 기록할 수도 있다. 
  • APPENDER태그는 LOGGER태그들보다 위에 있어야 한다.
  • CONSOLEAPPENDER → ORG.APACHE.LOG4J.CONSOLEAPPENDER , 콘솔에 로그 매시지를 출력한다
  • FILEAPPENDER → ORG.APACHE.LOG4J.FILEAPPENDER , 로그 메시지를 저장된 파일에 기록한다
  • ROLLINGFILEAPPENDER → ORG.APACHE.LOG4J.ROLLINGFILEAPPENDER , 파일 크기가 일정 수준 이상이 되면 기존 파일을 백업파일로 두고 처음부터 다시 기록한다
  • DAILYROLLINGFILEAPPENDER → ORG.APACHE.LOG4J.DAILY.ROLLING.FILE.APPENDER , 일정 기간 단위로 로그 파일을 생성하고 기록한다

 

7. LAYOUT

  • LAYOUT은 로그를 출력하는 형태를 만들 수 있다. PATTERNLAYOUT을 이용하는 것이 가장 적합하다. 로그의 출력형태, LAYOUT을 자신이 원하는 형식으로 바꿀 수 있다. 
  • %m → 로그 내용 출력
  • %p → debug, info, warn, error 등의 priority 출력
  • %r → 어플리케이션 시작 후 이벤트가 발생하는 시점까지의 경과시간 출력
  • %c → package 출력
  • %C → 클래스명 출력
  • %d → 이벤트 발생 날짜 출력
  • %n → 개행문자(\n) 출력
  • %M → 로깅이 발생한 method 이름 출력
  • %F → 로깅이 발생한 프로그램 파일명 출력
  • %I → 로깅이 발생한 caller 정보 출력
  • %L → 로깅이 발생한 caller 라인 수 출력
  • %x → 로깅이 발생한 thread 와 관련된 NDC 출력
  • %X → 로깅이 발생한 thread 와 관련된 MDC 출력
  • % → % 출력 표시
  • %t → 쓰레드 이름 출력



 

참고출처

https://to-dy.tistory.com/20 

 

'DEV-STUDY, ETC.' 카테고리의 다른 글

[SPRING STUDY] README.md  (0) 2022.09.04
[SPRING STUDY] dispatcher-servlet.xml 개요와 동작과정의 이해  (0) 2022.08.28
LG CNS DEVON FRAMEWORK  (0) 2022.08.28
데이터독(Datadog)  (1) 2022.08.28
젠킨스(JENKINS)  (0) 2022.08.28
Comments