본문 바로가기

dev/Spring

로깅, SLF4J

1. SLF4J

  • 로깅 패사드
  • 로깅에 대한 추상화된 인터페이스를 제공해준다.
  • 즉, SLF4J를 사용하면 로깅 라이브러리에 대한 의존성을 제거해준다.(손쉬운 모듈 교체 가능)


2. spring에서 SLF4J 사용하기


1) spring 기본 로깅 모듈 제거

  • spring은 기본적으로 common-logging을 사용
  • 이를 제거하고 slf4를 추가
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<versions>${spring.version}</version>
<exclusions>
<!-- common-logging 제거 -->
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging<artifactId>
<exclusion>
</exculsions>
</dependency>

2) jcl-over-slf4 추가
  • commons-logging을 대체하는 SLF4J 라이브러리
  • 추가하지 않으면 spring은 commons-logging을 찾지 못했다는 오류를 발생시킨다.
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>1.7.25</version>
</dependency>


3) 로깅 모듈 추가 & 설정

  • 실제 로깅을 수행할 로깅 모듈을 추가한다.
  • 최근에는 logback, log4j2를 주로 사용한다.


[tip]

로그 파일은 용도에 따라 폴더를 나누어 관리한다.

  • local : 개인개발
  • dev : 공통개발
  • stage : 테스트 환경
  • production : 운영환경
[tip]
spring의 인터셉터를 사용하면 컨트롤 시작, 종료 시의 로그를 남길 수 있다.

[참조]

sl4j를 사용해야 하는 이유 : https://inyl.github.io/programming/2017/05/05/slf4j.html