[java] SLF4J를 사용한 예외 로깅

자바 애플리케이션에서 예외 로깅은 중요한 디버깅 도구입니다. SLF4J(Simple Logging Facade for Java)는 다양한 로깅 프레임워크를 간편하게 사용할 수 있도록 해주는 로깅 API입니다. 이 글에서는 SLF4J를 사용하여 예외를 로깅하는 방법에 대해 알아보겠습니다.

SLF4J 설정

SLF4J를 사용하기 위해서는 먼저 SLF4J 라이브러리를 프로젝트에 추가해야 합니다. Maven을 사용하는 경우, pom.xml 파일에 다음 의존성을 추가합니다:

<dependencies>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>1.7.32</version>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-simple</artifactId>
        <version>1.7.32</version>
    </dependency>
</dependencies>

위의 의존성은 SLF4J API와 SLF4J의 기본 구현체인 Simple Logger를 추가하는 것입니다. Simple Logger는 단순한 출력을 제공하기 때문에 개발 및 테스트 환경에서 유용합니다.

로깅 코드 작성

SLF4J API를 사용하여 예외를 로깅하는 코드는 다음과 같습니다:

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

public class ExampleClass {
    
    private static final Logger logger = LoggerFactory.getLogger(ExampleClass.class);
    
    public static void main(String[] args) {
        try {
            // 예외가 발생할 수 있는 코드
            throw new Exception("예외 발생!");
        } catch (Exception e) {
            logger.error("예외 발생:", e);
        }
    }
}

위의 코드에서 LoggerFactory.getLogger() 메서드를 사용하여 로깅 객체를 얻습니다. 이 메서드에는 현재 클래스의 클래스 객체를 전달합니다. 이를 통해 로그에 클래스 이름이 표시됩니다.

예외가 발생하는 부분에서 logger.error() 메서드를 사용하여 예외를 로깅합니다. 이 메서드는 예외 메시지와 예외 객체를 인수로 받습니다. 예외 객체를 인수로 전달하여 예외에 대한 추가 정보를 기록할 수 있습니다.

로깅 레벨 설정

SLF4J의 로그 레벨은 trace, debug, info, warn, error로 나뉩니다. 기본적으로 Simple Logger는 로깅 레벨을 info로 설정합니다. 로깅 레벨을 변경하려면 simplelogger.properties 파일을 프로젝트의 클래스 경로에 추가하고 원하는 로그 레벨을 설정합니다.

예를 들어 simplelogger.properties 파일을 다음과 같이 작성하여 로그 레벨을 debug로 설정할 수 있습니다:

org.slf4j.simpleLogger.defaultLogLevel=debug

결론

SLF4J를 사용하여 예외를 로깅하는 것은 중요한 디버깅 도구입니다. SLF4J를 사용하면 다양한 로깅 프레임워크를 유연하게 사용할 수 있으며, 로깅 레벨 설정 등 다양한 기능을 제공합니다. SLF4J를 사용하여 애플리케이션에서 예외를 효율적으로 로깅해보세요!

참고 자료