[java] SLF4J를 사용한 로그 메시지 래핑하기

이번 포스트에서는 Java 프로젝트에서 로그 메시지를 래핑하는 방법에 대해 소개하겠습니다. 로그 메시지를 래핑하는 것은 코드의 가독성과 유지보수성을 향상시키는 데 도움이 됩니다. 이를 위해 SLF4J를 사용하여 로깅을 수행할 것입니다.

SLF4J란?

SLF4J는 Simple Logging Facade for Java의 약자로, Java의 로깅 시스템을 표준화하는 인터페이스입니다. SLF4J는 여러 가지 로깅 프레임워크(Logback, Log4j, etc.)와 함께 사용할 수 있는 다양한 바인딩을 제공합니다.

로그 메시지 래핑하기

로깅을 위해 SLF4J를 사용하려면 먼저 프로젝트에 SLF4J와 원하는 로깅 바인딩을 추가해야 합니다. Maven을 사용하는 경우, pom.xml 파일에 다음 종속성을 추가합니다.

<dependencies>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>1.7.32</version>
    </dependency>
    <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-classic</artifactId>
        <version>1.2.6</version>
    </dependency>
</dependencies>

이제 로그를 래핑할 클래스를 만들어보겠습니다. 예를 들어, LoggerWrapper 클래스를 만들어 로그 메시지를 래핑하는 기능을 구현할 수 있습니다.

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

public class LoggerWrapper {

    private Logger logger;

    public LoggerWrapper(Class<?> clazz) {
        this.logger = LoggerFactory.getLogger(clazz);
    }

    public void info(String message) {
        logger.info("[INFO] " + message);
    }

    public void error(String message) {
        logger.error("[ERROR] " + message);
    }

    // 다른 로그 레벨에 대한 메소드들도 구현 가능

}

위의 예제에서는 LoggerFactory.getLogger() 메소드를 사용하여 SLF4J의 로거를 얻어옵니다. 그리고 로그 메시지를 특정 형식으로 래핑하여 원하는 로그 레벨에 따라 출력하도록 구현합니다.

이제 이 LoggerWrapper 클래스를 사용하여 로그를 남기는 예제를 살펴보겠습니다.

public class Main {

    private static final LoggerWrapper logger = new LoggerWrapper(Main.class);

    public static void main(String[] args) {
        logger.info("This is an info message");
        logger.error("This is an error message");
    }

}

위의 예제에서는 LoggerWrapper 클래스의 인스턴스를 생성하여 로그 메시지를 출력합니다. 로그 메시지는 [INFO] 또는 [ERROR]와 함께 출력됩니다.

마무리

이제 Java 프로젝트에서 SLF4J를 사용하여 로그 메시지를 래핑하는 방법을 알아보았습니다. SLF4J를 통해 로깅 시스템을 표준화하면 코드의 가독성과 유지보수성을 향상시킬 수 있습니다.

자세한 내용은 SLF4J 공식 홈페이지를 참고하시기 바랍니다.