ETC - Spring & Java 로깅 라이브러리

불순분자들·2022년 8월 25일
0

ETC( 기타 )

목록 보기
11/24

로깅이란 ?

운영중인 애플리케이션에 문제가 발생했을 경우, 문제의 원인을 파악하기 위해 적절한 로그를 남겨주는 것이다.

Log Level

  1. Trace : debug보다 세분화된 정보
  2. Debug : 디버깅하는데 유용한 세분화된 정보
  3. Info : 진행상황 같은 일반 정보
  4. Warn : 오류는 아니지만 잠재적인 오류 원인이 될 수 있는 경고성 정보
  5. Error : 요청을 처리하는 중 문제가 발생한 오류 정보

로깅 라이브러리 - java.util.logging

자바 버전 1.4부터 기본적으로 제공하는 로깅 유틸리티로 java.util.logging 이 있다.

장점

  • 원하는 기능이 기본적인 수준이라면 외부 라이브러리 사용 없이 로깅 가능하다.

단점

  • 자바 1.4의 시점에서 이미 잘 만들어진 Log4J가 존재하였고 널리 쓰이고 있어서 사용할 이유가 없다.
  • 다른 라이브러리와 비교했을 때 속도가 느리다

로깅 라이브러리 - Log4J

2020년 시점에 Log4J2 버전이 출시되어있음을 참고하자.
Log4J는 3개의 컴포넌트로 이루어져있다.

  • Logger : 데이터를 기록하는 역할
  • Appender : 데이터를 어디에 기록할지 정하는 역할
  • Layout : 데이터를 어떤 스타일로 기록할지 정하는 역할

Log4J 기능 정리

  • thread safe 하다.
  • 속도가 최적화되어있다.
  • 여러 종류의 appender를 지원한다.

로깅 라이브러리 - SLF4J

스프링 부트 라이브러리를 사용하면 스프링 부트 로깅 라이브러리가 함께 포함되고, 기본적으로 SLF4J, Logback과 Log4j를 사용한다.

로그 라이브러리는 Logback, Log4J 등 많은 라이브러리가 있는데, 이것을 통합해서 인터페이스로 제공하는 것이 SLF4J 라이브러리다.

SLF4J는 인터페이스, 구현체로 Logback 같은 로그 라이브러리를 선택한다.

SLF4J와 다른 라이브러리의 차이점

  • SLF4J 라이브러리는 Wrapper 되었다.
  • SLF4J를 사용하여 설정에 따라 다른 로깅 라이브러리를 사용할 수 있다.
profile
장래희망 : 침대 위 녹아든 치즈

0개의 댓글