본문 바로가기

Programming/Spring

[Spring Boot] Log Level 설정을 통해 디버깅 하기

반응형

Spring 동작 방식을 간단하게 구현한 샘플 예제인 spring-petclinic을 기준으로 한다.

 

프로젝트의 세부 동작 과정을 파악하려면 Log를 살펴봐야 한다.

Spring Boot의 기본 설정에 의한 Log 출력 내용은 아래와 같다.

 

 

출력된 Log 내용 구성은 다음과 같다.(왼쪽 -> 오른쪽 순서)

  • 시간 및 날짜
  • 로그 레벨
  • 프로세스 아이디
  • 구분자( --- )를 사용해 이후의 내용부터 로그 메시지임을 알림
  • 스레드 이름: []를 이용해 구분
  • 로거 이름: 일반적으로 소스 클래스 이름 표시
  • 로그 메시지

Log Level 설정

 

src/main/resources/application.properties에서 Log Level 설정이 가능하다. 위 이미지는 원래 주석 처리되어 있던 DEBUG 레벨에 대한 주석을 해제한 모습이다. 설정 후 저장 -> 프로젝트 재시작.

 

 

이후 웹에서 새로운 요청을 보낼 때마다 DEBUG 레벨로 설정했기 때문에 세부 동작 과정을 확인할 수 있다.

 

Log 색상 변경

지금까지의 Log를 보면 흑백 단색으로 출력된다. 끊임없이 에러 메시지를 확인하고 디버깅해야 하는 입장에서 INFO, FATAL, WARN 등의 Log Level 메시지가 모두 동일한 색상이라면 알아보기 쉽지 않다. 필요하다면 application.properties에 다음 내용을 추가한다.

 

spring.output.ansi.enabled=always

 

Log Level에 따른 색상 구분은 다음과 같다.

 

 

색상 구분 설정 후의 Log 출력 내용은 다음과 같이 변경되었다.

 

 

참고

https://docs.spring.io/spring-boot/docs/2.1.13.RELEASE/reference/html/boot-features-logging.html

 

26. Logging

Spring Boot uses Commons Logging for all internal logging but leaves the underlying log implementation open. Default configurations are provided for Java Util Logging, Log4J2, and Logback. In each case, loggers are pre-configured to use console output with

docs.spring.io

반응형