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는 다양한 로깅 구현체와 연동이 가능하므로 프로젝트의 로깅 요구사항에 맞게 적절한 구현체를 선택하여 사용할 수 있습니다.
참고 문서: