Log4j와 Slf4j를 이용한 Log출력

Log4j와 Slf4j를 이용한 Log출력

프로그램, 또는 웹 서버를 개발하면서 값, 상태, 오류 등을 출력해야 하는 일이 발생한다.

보통은 System.out.print 또는 System.err.pring를 이용한다. 이렇게 사용하면 시스템에 자원을 낭비할 뿐만 아니라 Log를 찾는것도 어렵고 유지하기도 어렵다.

따라서 로그를 따로 출력하거나 저장하여 사용하여야 한다.

Log4j(Log For Java)의 장점

- System.out.print에 비해서 속도가 빠르다.

- 멀티스레드 환경에서도 안전하게 작동한다.

- 계층적인 로그 설정과 처리가 가능하다.

- 출력을 콘솔, 원격, Email, DB, 파일등 다양하게 가능하다.

Slf4J(Simple Logging Facade For Java)이란?

log4j, logback, commons-logging 같은 로깅 프레임워크를 위한 추상화를 제공한다.

사용해보기

1. 스프링이 기본으로 사용하는 commons-logging를 제거

org.springframework spring-context ${spring.version} commons-logging commons-logging

2. Log4j와 Slf4j 추가

org.slf4j slf4j-api ${slf4j.version} compile org.slf4j slf4j-log4j12 ${slf4j.version} org.slf4j jcl-over-slf4j ${slf4j.version}

3. 설정 파일 생성 및 선언

- log4j2.xml

- web.xml

-- 중간 추가 -- log4jRefreshInterval 2000 log4jConfigLocation classpath:log4j2.xml org.springframework.web.util.Log4jConfigListener

기타 옵션

출력 서식 옵션

%c, %logger : 해당 로그를 쓰는 로거의 이름.

: 해당 로그를 쓰는 로거의 이름. %C, %class : 해당 로그를 요청한 클래스 이름

: 해당 로그를 요청한 클래스 이름 %d, %date : 해당 로그가 발생한 시간

: 해당 로그가 발생한 시간 %enc, %encode : 특정 언어에서의 출력을 위한 문자 인코딩

: 특정 언어에서의 출력을 위한 문자 인코딩 %ex, %exception, %throwable : 예외 로그. 길이를 설정할 수 있음.

: 예외 로그. 길이를 설정할 수 있음. %F, %file : 해당 로그가 발생한 클래스 파일명

: 해당 로그가 발생한 클래스 파일명 %l, %location : 해당 로그가 발생한 클래스명.메소드명(파일:라인)

: 해당 로그가 발생한 클래스명.메소드명(파일:라인) %L, %line : 해당 로그가 발생한 라인 번호

: 해당 로그가 발생한 라인 번호 %m, %msg, %message : 로그문에 전달된 메시지

: 로그문에 전달된 메시지 %n : 줄바꿈

: 줄바꿈 %p, %level : 로그 레벨

: 로그 레벨 %r, %relative : 로그 처리시간

: 로그 처리시간 %t, %thread : 해당 로그가 발생한 스레드명

: 해당 로그가 발생한 스레드명 %style{pattern}{ANSI style} : ANSI를 사용해 특정 패턴을 스타일링함

: ANSI를 사용해 특정 패턴을 스타일링함 %highlight{pattern}{style} : 로그 레벨명을 ANSI 색깔로 하이라이트

출력 레벨 설정

FATAL : 아주 심각한 에러가 발생한 상태

ERROR : 요청을 처리하는 중 문제가 발생한 상태

WARN : 처리 가능한 문제이지만, 향후 에러의 원인이 될 수 있는 상태

INFO : 로그인, 상태변경과 같은 정보성 메세지

DEBUG : 개발시 디버그 용도로 사용

TRACE : 디버그 레벨이 너무 광범한 것을 해결하기 위해서 좀 더 상세한 상태를 나타냄

출처: https://sjh836.tistory.com/161 [빨간색코딩]

from http://rspring41.tistory.com/147 by ccl(A) rewrite - 2021-10-14 12:01:21