프론트엔드 개발

[spring] log4j 사용

Grey Kang 2021. 3. 1. 18:55
반응형

log4j란?

- 로그문읠 출력을 다양한 대상으로 할 수 있도록 도와주는 오픈 소스 기반의 도구라고 할 수 있다

 

log4j는 속도에 최적화되어있다.

log4j는 6단계의 장애레벨을 사용하며,

TRACE, DEBUG, INFO, WARN, ERROR, FATAL로 구성된다

 

Logger 로깅 메시지를 Appender에 전달하는 역할을 한다
개발자가 직접 로그출력 여부를 런타임에 조정한다
Appender 로그의 출력위치를 결정(파일, 콘솔, DB 등)
Layout 어떤 형식으로 출력할 것인지 출력한다

Log4j 레벨

FATAL 아주 심각한 에러가 발생
ERROR 요청을 처리하는 중 문제가 발생한 상태
WARN 처리 가능한 문제이지만 향후 에러의 원인이 될 수 있는 경고성 메시지
INFO 로그인, 상태변경과 같은 정보성 메시지를 나타냄
DEBUG 개발 시 디버그 용도로 사용한 메시지
TRACE DEBUG 레벨이 너무 광범위한 것을 해결하기 위해 좀 더 상세한 상태를 나타냄

Log4j 주요 클래스

ConsoleAppender 콘솔에 로그 메시지 출력
FileAppender 파일에 로그 메시지 출력
RollingFileAppender 파일 크기가 일정 수준 이상이 됨녀 기존 파일을 백업파일로 바꾸고 처음부터 기록
DailyRollingFileAppender 일정 기간 단위로 로그 파일을 생성하고 기록
JDBCAppender DB에 로그를 출력, 하위에 Driver,URL,User,Password,Sql과 같은 parameter를 정의
SMTPAppender 로그 메시지를 이메일로 전송
NTEventAppender 윈도우 시스템 이벤트 로그로 메시지 전송

Log4j 설정

<dependencies>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.0-beta6</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.0-beta6</version>
</dependency>
</dependencies>

Maven Dependency에 추가해주어야 함(pom.xml)

<listener>
    <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
<context-param>
    <param-name>log4jConfigLocation</param-name>
    <param-value>/WEB-INF/config/log4j.properties</param-value>
</context-param>

web.xml에 추가해준다

 

Log4j 기본설정

# Log4j Setting file
log4j.rootLogger=INFO, console

기본적인 INFO 수준 이상의 로그만 console을 통해 출력한다

 

console에 대한 설정작업

# Console log
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%-5p %l - %m%n

 

반응형