[Spring] logback(@slf4j) 라이브러리 사용 로그관리

로그 : system.out.println("hello world");

1. 중요도 분리가 안된다.
2. 프로그램의 성능을 떨어트리고 또한 로그를 파일에 저장하는 것이 불가능하다.

 

logback을 사용해서 로그관리

⭐logback이란

  • Slf4j의 구현체로 Spring Boot에서는 spring-boot-starter-logging안에 기본적으로 포함되어 있어서 따로 dependency를 추가하지 않고 사용 가능

⭐slf4j(Simple Logging Facade for Java)

Slf4j는 뜻 그대로 로깅을 간단하게 사용할 수 있도록 하는 Facade로

로깅 라이브러리들을 하나의 통일된 방식으로 사용할 수 있는 방법이다.

기본구현체 == logback

- logback(@slf4j) 라이브러리 사용(SLF4J인터페이스의 기본 구현체)

- 로그관리(로그레벨-debug, info, error)

3. 로그파일관리(날짜별, 용도별) - logback설정파일

 

⭐로그레벨(중요도에 따라 관리)

- debug모드 < info모드 < error모드

 

모드의 중요도의 따라 찍히는 로그가 다르다. - log.debug("디버그 로그입니다.")

- debug모드일때 debug, info, error로그가 찍힌다.

- info 모드일때 info, error로그가 찍힌다.

- error모드 일때 error로그가 찍힌다.

 

로그레벨 활용 사용 예시)

실제라이브 서비스(운영)에서는 info로 설정

개발환경에서는 debug 모드로 설정

테스팅할때 log.debug("디버그 로그입니다.")해서 로그가 개발환경에서만 찍히게 하기. (라이브 서비스에 영향 주지않기)

 

logback-spring.xml

- logging에 대한 디테일한 설정가능

- logback-spring.xml 설정 파일이 yml logging설정 파일보다 우선설정된다.


로그관리 테스트

 

Log Test Controller

 

yml파일설정

 

info 모드일 때 Info로그와 Error로그가 찍힌다.

 

error모드일 때 Error로그만 찍힌다.

 


logback-spring.xml - logging 디테일 설정

 

app.log = INFO모드 설정

app-error.long = ERROR모드 설정

 

app.log확인 시 INFO로그, ERROR로그가 찍힌다.

app-error.log 확인 시 ERROR로그만 찍힌다.