[springBoot] Log 관리

ㅇㅅㅇ·2023년 3월 19일
0

SpringBoot

목록 보기
2/3

로그란? 발생되는 모든 행위와 이벤트 정보를 시간에 따라 남겨둔 데이터로 로그를 통해 애플리케이션의 상태를 관찰할 수도 있고, 오류가 발생한 부분에 대해서 인지할 수 있다.


Spring Boot 로그 관리하기

system.out.println()를 사용하게 되면 io리소스를 많이 잡아먹어 속도가 느려지고, 후에 로그를 파일로 남겨서 확인해야 하기 때문에 자바에서 지원하는 logging 라이브러리를 사용해 로그를 관리한다.


로깅 라이브러리 구현체

  1. log4j : Apache 재단에서 개발하여 2015년을 끝으로 개발 중단하였고, 기존에 표준으로 가장 많이 사용되던 라이브러리리다.
  2. logback : 기존의 log4j 이후 같은 개발자가 개발하여 보다 향상된 성능을 가지고, Slf4j의 구현체로 Spring Boot에서는 spring-boot-starter-logging 안에 기본적으로 포함되어 있어서 따로 dependency를 추가하지 않고 사용 가능하다.

Slf4j, Simple Logging Facade for Java : 로깅을 간단하게 사용할 수 있도록 하는 Facade로 로깅 라이브러리들을 하나의 통일된 방식으로 사용할 수 있는 방법이다. 위에 나온 구현체의 종류와 상관없이 로깅을 사용할 수 있다.


로거 적용법

  • Logger 객체를 선언하여 사용
private Logger logger = LoggerFactory.getLogger(BoardController.class);
  • lombok의 @Slf4j 어노테이션 사용, 자동으로 설정된 log 객체를 사용
log.info("########### Create BoardController ###############");

로그 레벨 : TRACE < DEBUG < INFO < WARN < ERROR

  • 로그 레벨에 따라 로그 메시지의 종류가 달라진다.
  • 레벨은 출력 범위를 나타내고, 현재 레벨 이상의 로그만 화면에 출력된다.
    INFO 레벨이면 이상의 로그(INFO, WARN, ERROR)만 화면에 출력
  1. TRACE : 추적 레벨은 DEBUG보다 좀 더 상세한 정보를 표시
  2. DEBUG : 디버깅하기 위한 정보를 표시, 운영 서버에서는 표시하지 않도록 설정
  3. INFO : 상태 변경과 같은 정보성 로그를 표시
  4. WARN : 처리 가능한 문제, 시스템 에러의 원인이 될 수 있는 경고성 메시지를 표시
  5. ERROR : 요청을 처리하는 중 오류가 발생한 경우 표시


출처 : https://primetime.tistory.com/entry/Spring-Boot-%EB%A1%9C%EA%B7%B8-%EA%B4%80%EB%A6%AC-logback%EA%B3%BC-Slf4j

0개의 댓글