Time does not change us. It just unfolds us.

Web/Spring Boot

[SpringBoot]Logging과 Log Level

소젬 2021. 11. 25. 09:40

로깅(Logging)이란 시스템 동작시 시스템의 상태와 작동 정보를 시간의 경과에 따라 기록하는 것, 그리고 그 기록을 로그(Log)라고 한다.

  • 상황별 Level 지정하여 Level별 메시지를 선택 가능
  • 응용 프로그램의 실행에 대한 흐름과 에러 확인 가능
  • 프레임워크를 이용하여 간단하고 쉬운 사용 환경 조성 기능
  • 모듈 별로 유연하게 메세지 출력 가능
  • 자유로운 출력 위치 및 다양한 출력 형식 지원

로깅 관련 프레임 워크 : logback, log4j,  logback,  log4j2 , slf4j이 있다.

 

log4j2

  • 동일한 쓰레드 기준으로 Log4j2 처리량이 Log4j1 혹은 Logback 보다 월등한 차이를 가지고 성능을 나타냄
  • log4j2는 slf4j의 구현체
  • dependency 추가
<dependency>
    <groupId>org.bgee.log4jdbc-log4j2</groupId>
    <artifactId>log4jdbc-log4j2-jdbc4.1</artifactId>
</dependency>

 


 

 

Spring Boot Logging 이란? (log4j, logback, log4j2)

Log, Logging이란? 로깅(logging)이란 시스템 동작시 시스템의 상태와 작동 정보를 시간의 경과에 따라 기록하는 것을 말합니다. 그리고 그 기록을 로그라고 합니다. 로깅을 하는 이유는 소프트웨어의

wildeveloperetrain.tistory.com

 

slf4j

  • 로깅에 대한 추상 레이어
  • 코드를 일정하게 유지하면서 구현체의 전환 (다른 프레임워크로의 전환)을 쉽고 간단하게 할 수 있음
  • 아래처럼 선언해서 사용할 필요 없이 @Slf4j annotation 사용 가능
Logger log = LoggerFactory.getLogger(getClass()); 

 

Log Level 순서

Error부터 순서대로 높은 레벨을 가지며 출력 레벨의 설정에 따라 설정 레벨 이상의 로그를 출력

TRACE  <  DEBUG  <  INFO  <  WARN  <  ERROR
  • 1) ERROR : 요청을 처리하는 중 오류가 발생한 경우 표시한다.
  • 2) WARN  : 처리 가능한 문제, 향후 시스템 에러의 원인이 될 수 있는 경고성 메시지를 나타낸다.
  • 3) INFO  : 상태변경과 같은 정보성 로그를 표시한다.
  • 4) DEBUG : 프로그램을 디버깅하기 위한 정보를 표시한다. 
  • 5) TRACE : 추적 레벨은 Debug보다 훨씬 상세한 정보를 나타낸다. 

 

스프링부트에서는 application.properties 값을 세팅하면 Logging Level 설정이 가능하다.

예시로 상위 패키지의 defalt level 설정 후 하위 패키지에 대한 각각 로깅 레벨을 별도로 설정할 수 있다.

logging.level.com.god.bo.test=info 
logging.level.com.god.bo.test.controller=debug

내가 사용한 application.yml

  logging:
    level:
      org:
        springframework:
          web:
            socket:
              config:
                WebSocketMessageBrokerStats: INFO

 

 

참고

https://goddaehee.tistory.com/206

 

[스프링부트 (5)] Spring Boot 로그 설정(1) - Logback

[스프링부트 (5)] Spring Boot Log 설정(1) - Logback 안녕하세요. 갓대희 입니다. 이번 포스팅은 [ 스프링 부트 Log 설정 - 로그백] 입니다. : -) 1. Logback 이란? 특징?  - 자바 오픈소스 로깅 프레임..

goddaehee.tistory.com

https://huisam.tistory.com/entry/log4j2

 

Spring Boot 에서 Log4j2 를 설정하는 방법

로그를 남기는 방법? 우리가 왜 Application에 log를 남기는 것이 중요한지 에 대해서는 지난시간에 살펴보았죠 ㅎㅎ 기억이 안나신다면 이전 포스팅을 참고해주세요 :) huisam.tistory.com/entry/springlogging

huisam.tistory.com

 

'Web > Spring Boot' 카테고리의 다른 글

[Spring]@Autowired  (0) 2021.11.24
[SpringBoot]banner.txt만들기  (0) 2021.11.22
[Spring Boot]Docker-compose  (0) 2021.10.27
[Spring Boot]Docker 이미지 빌드  (0) 2021.10.27