본문 바로가기

Spring&IntelliJ

Logback로깅 프레임워크

 

출처: https://goddaehee.tistory.com/206

이 글 읽기전 알아야 할 사전지식: https://flexyduck.tistory.com/245

안녕하세요. 갓대희 입니다. 이번 포스팅은 [ 스프링 부트  Log 설정 - 로그백입니다.  : -) 

 

 

 

 

1. Logback 이란? 특징?

 - 자바 오픈소스 로깅 프레임워크,  SLF4J의 구현체
 - 스프링 부트의 기본으로 설정되어 있어서 사용시 별도로 라이브러리를 추가하지 않아도 된다.
 - log4j, log4j2 등과 성능을 비교했을 때에도 logback이 더 훌륭한 성능을 보여준다.
 - spring-boot-starter-web 안에 spring-boot-starter-logging에 구현체가 있다.
 - Logback을 이용하여 로깅을 수행하기 위해서 필요한 주요 설정요소로는 Logger, Appender, Encoder의 3가지가 있으며 각각은 다음과 같은 역할을 수행한다.


 - 공식 매뉴얼 참고! (http://logback.qos.ch/manual/index.html)
 - 스프링부트 doc 참고 ! (https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-logging)

 

1. Spring boot logback 설정

 - logback.xml 파일을 resources 디렉토리에 만들어서 참조한다.

 

 - logback-spring.xml 파일을 resources 디렉토리에 만들어서 참조한다.

 

 - 참고 순서

1) classpath(resources디렉토리 밑)에 logback-spring.xml파일이 있으면 설정파일을 읽어간다.
2) logback-spring.xml파일이 없다면 .yml(.properties)파일의 설정을 읽어간다.
3) logback-spring.xml파일과 .yml(.properties)파일이 동시에 있으면 .yml(.properties) 설정 파일을 적용 후 xml파일이 적용된다.
 - 위에서 얘기한 대로 스프링 부트 에서는 logback-spring.xml을 사용해서 Spring이 logback을 구동할 수 있도록 지원해 주며 이를 이용하여 profile, 즉 배포 환경에 따른(spring.profiles.active을 활용하여) application.xml에 설정된 properties를 읽어올 수 있다.

 

ex) spring.profiles.active=local
logback-local.properties => console-logging
logback-dev.properties => file-logging
logback-prod.properties => file-logging,remote-logging

 

스프링 프로파일에 따른 설정 방법은 추후 하단의 예제소스를 통해 살펴보도록 하자.

 

 

2. 로그 레벨 순서 및 사용방법

1) ERROR : 요청을 처리하는 중 오류가 발생한 경우 표시한다.

2) WARN  : 처리 가능한 문제, 향후 시스템 에러의 원인이 될 수 있는 경고성 메시지를 나타낸다.

3) INFO  : 상태변경과 같은 정보성 로그를 표시한다.
4) DEBUG : 프로그램을 디버깅하기 위한 정보를 표시한다. 
5) TRACE : 추적 레벨은 Debug보다 훨씬 상세한 정보를 나타낸다. 

 

 - 로그에 설정할 수 있는 레벨은 총 5가지다.

 - 위의 순서대로 높은 레벨을 가진다. 출력 레벨의 설정에 따라 설정 레벨 이상의 로그를 출력 한다.

 - 예를 들어 로깅 레벨 설정을 "INFO"로 하였을 경우 "TRACE", "DEBUG" 레벨은 무시한다.

 

---다 복붙 안되므로 해당 사이트 가서보기---