[java] SLF4J에서 로깅 연결 설정하기

SLF4J(Simple Logging Facade for Java)은 Java 애플리케이션에서 로깅 기능을 사용하기 위한 인터페이스입니다. SLF4J는 로깅에 대한 추상화 계층을 제공하여 로깅 구현체를 유연하게 변경할 수 있게 해줍니다. 이번 포스트에서는 SLF4J를 사용하여 로깅 연결을 설정하는 방법에 대해 알아보겠습니다.

SLF4J 의존성 추가하기

먼저, SLF4J를 사용하기 위해서는 의존성을 추가해야 합니다. 일반적으로 Maven이나 Gradle과 같은 빌드 도구를 사용한다면, 해당 도구의 설정 파일에 SLF4J의 의존성을 추가하면 됩니다. 아래는 Maven을 사용하는 경우의 예시입니다.

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

로깅 구현체 설정하기

SLF4J는 로깅 기능을 직접 구현하지 않고, 로깅 구현체에 연결하기 위한 인터페이스를 제공합니다. 따라서 로깅 구현체를 선택하고 해당 구현체의 의존성을 추가해야 합니다. SLF4J는 다양한 로깅 구현체와 함께 사용할 수 있습니다. 가장 일반적인 구현체는 Logback입니다. 아래는 Maven을 사용하는 경우, Logback을 추가하는 예시입니다.

<dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-classic</artifactId>
    <version>1.2.5</version>
</dependency>

로깅 코드 작성하기

SLF4J를 사용하여 로깅을 하려면, 로거(Logger)를 생성하고 로깅 메소드를 호출해야 합니다. 로거를 생성하기 위해서는 org.slf4j.LoggerFactory 클래스의 getLogger() 메소드를 사용합니다. 로거의 이름으로는 일반적으로 클래스의 이름을 사용합니다. 아래는 로깅 코드의 예시입니다.

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

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

    public void myMethod() {
        // 로깅 메시지 출력
        logger.info("MyMethod 실행됨");
        
        // 변수를 포함한 로깅 메시지 출력
        String name = "John";
        int age = 30;
        logger.info("이름: {}, 나이: {}", name, age);
    }
}

로깅 레벨 설정하기

SLF4J를 사용하여 로깅 레벨을 설정할 수 있습니다. 로깅 레벨은 로그 메시지의 중요도에 따라 다르게 설정할 수 있습니다. 대표적인 로깅 레벨로는 TRACE, DEBUG, INFO, WARN, ERROR 등이 있습니다. 로그 레벨을 설정하면 해당 레벨보다 중요도가 높은 로그 메시지만 출력됩니다. 로깅 레벨은 로거 단위로 설정할 수 있습니다. 아래는 로깅 레벨을 설정하는 예시입니다.

<configuration>
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{HH:mm:ss} [%level] [%thread] %logger{10} - %msg%n</pattern>
        </encoder>
    </appender>
    <root level="INFO">
        <appender-ref ref="CONSOLE" />
    </root>
</configuration>

위의 예시에서는 root 로거의 레벨을 INFO로 설정하고 있습니다. 따라서 INFO 레벨 이상의 로그 메시지만 출력됩니다.

결론

SLF4J를 사용하여 Java 애플리케이션에서 로깅 기능을 사용할 수 있습니다. SLF4J를 사용하면 로깅 구현체를 유연하게 변경할 수 있으며, 로깅 레벨을 설정하여 로그 메시지의 출력을 조절할 수 있습니다. SLF4J를 통해 효과적인 로그 관리를 할 수 있으니, 프로젝트에서 적극적으로 활용해보시기 바랍니다.


참고 자료: