Java Logging - 1. Slf4j

SW B·2023년 1월 25일
0

Slf4j란?

로깅 전략을 위한 첫번째 단계 여러 로깅 구현체의 추상화 전략 slf4j를 소개합니다.

왜 사용해야 하는가?

추상화 전략

Maven Repository

Slf4j Maven Repository

시작하기

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class HelloWorld {

  public static void main(String[] args) {
    Logger logger = LoggerFactory.getLogger(HelloWorld.class);
    logger.info("Hello World");
  }
}

여러 구현체 대입하기

Q. 구현체 binding은 어떻게?

고맙게도 Slf4j는 단순히 Slf4j에서 지원하는 로깅 라이브러리를 추가해 주는 작업만으로 구현체를 설정 할 수 있습니다. 다음은 Slf4j에서 지원하는 로깅 구현체의 목록입니다. (2023. 01. 31. 기준)

  • LOGBACK-CLASSIC 1.3.X (JAVAX EE)
  • LOGBACK-CLASSIC 1.4.X (JAKARTA EE)
  • RELOAD4J
  • LOG4J 1.2.X
  • JAVA.UTIL.LOGGING
  • SLF4J SIMPLE

Javax EE와 Jakarta EE의 차이가 궁금하신 분들을 위해 삼성SDS에서 발간한 리포트를 추가합니다.
Javax EE VS Jakarta EE

Q. 만약 2가지 이상의 구현체가 프로젝트 내에 존재한다면?

Slf4j & Spring-Boot

기본적으로 Spring-Boot 프로젝트에는 Slf4j와 logback이 기본 로깅 전략으로 포함되어 있습니다. 만약 다른 구현체를 사용하고 싶다면 어떻게 사용할 수 있을까요?

  1. Maven 프로젝트
    pom.xml에 exclude설정을 통해 logback 제거
  1. Gradle 프로젝트
    exclude설정을 통해 logback 제거

Lombok Slf4j Annotation

will generate

private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(LogExample.class);

참조

0개의 댓글