프론트엔드 개발
[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
반응형