[java] SLF4J와 JUL-to-SLF4J 브릿지 사용하기

Java에서 로깅을 하기 위해 SLF4J를 주로 사용합니다. 그러나 Java 기본 로깅인 JUL (Java Util Logging)을 사용하는 라이브러리가 많기 때문에 SLF4J와 연동하기 위해서는 JUL-to-SLF4J 브릿지를 사용해야 합니다.

1. SLF4J 라이브러리 추가하기

먼저 Maven이나 Gradle과 같은 빌드 도구를 사용하여 SLF4J 라이브러리를 프로젝트에 추가해야 합니다. 다음은 Maven을 사용하는 경우의 의존성 설정 예시입니다.

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>1.7.30</version>
</dependency>

2. JUL-to-SLF4J 브릿지 라이브러리 추가하기

JUL-to-SLF4J 브릿지도 추가해야 합니다. 이를 통해 Java 기본 로깅인 JUL이 SLF4J로 로그를 전달합니다. 다음은 Maven을 사용하는 경우의 의존성 설정 예시입니다.

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>jul-to-slf4j</artifactId>
    <version>1.7.30</version>
    <scope>runtime</scope>
</dependency>

3. JUL 설정 변경하기

기본적으로 Java는 JUL을 사용하여 로그를 출력하도록 설정되어 있습니다. 따라서 JUL의 기본 설정을 변경하여 SLF4J를 사용하도록 설정해야 합니다. 다음은 설정 파일인 logging.properties에 추가해야 하는 내용입니다.

handlers=org.slf4j.bridge.SLF4JBridgeHandler

위의 설정은 handlers 프로퍼티에 SLF4JBridgeHandler를 추가하여 JUL의 로그를 SLF4J로 전달하도록 설정하는 것입니다.

4. 코드에서 SLF4J 사용하기

이제 SLF4J를 사용하여 로깅을 할 수 있습니다. 다음은 SLF4J의 간단한 사용 예시입니다.

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

public class Example {
    private static final Logger logger = LoggerFactory.getLogger(Example.class);

    public static void main(String[] args) {
        logger.info("Hello, SLF4J!");
    }
}

위의 코드에서는 LoggerFactory.getLogger() 메서드를 사용하여 로거를 가져온 다음, 해당 로거의 메서드를 호출하여 로그를 기록합니다.

마무리

SLF4J와 JUL-to-SLF4J 브릿지를 사용하여 Java 프로젝트에서 로깅을 효율적으로 관리할 수 있습니다. SLF4J는 다양한 로깅 구현체와 연동이 가능하므로 프로젝트의 로깅 요구사항에 맞게 적절한 구현체를 선택하여 사용할 수 있습니다.

참고 문서: