[java] SLF4J와 Log4j2의 추가 로깅 앱 사용하기

SLF4J (Simple Logging Facade for Java)는 자바 프로그램에서 로깅을 위한 인터페이스를 제공하는 로깅 프레임워크입니다. Log4j2는 SLF4J와 함께 사용하기 위한 로깅 구현체로, 강력하고 유연한 로깅 기능을 제공합니다.

이번 블로그에서는 SLF4J와 Log4j2를 사용하여 어떻게 추가 로깅 앱을 구현할 수 있는지 알아보겠습니다.

1. Maven을 이용한 의존성 추가

먼저, SLF4J와 Log4j2를 사용하기 위해서는 Maven을 이용하여 의존성을 추가해야 합니다. pom.xml 파일에 다음과 같이 의존성을 추가해주세요.

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

    <!-- Log4j2 -->
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-api</artifactId>
        <version>2.14.1</version>
    </dependency>
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-core</artifactId>
        <version>2.14.1</version>
    </dependency>
</dependencies>

2. 로깅 앱 구현

이제, 로깅 앱을 구현해보겠습니다. 먼저, Logger 인터페이스를 사용하여 로깅을 위한 메서드를 호출할 수 있는 클래스를 생성합니다.

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

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

    public void doSomething() {
        logger.debug("Debug message");
        logger.info("Info message");
        logger.warn("Warning message");
        logger.error("Error message");
    }

    public static void main(String[] args) {
        LoggingApp app = new LoggingApp();
        app.doSomething();
    }
}

위의 코드에서는 LoggerFactory.getLogger() 메서드를 사용하여 로그를 기록할 클래스의 Logger 객체를 생성합니다. 그리고 logger 객체를 이용하여 로깅 메시지를 출력합니다.

3. Log4j2 설정 파일 작성

마지막으로, Log4j2 설정 파일을 작성해야 합니다. resources 디렉토리에 log4j2.xml 파일을 생성하고 다음과 같이 설정합니다.

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
    <Appenders>
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />
        </Console>
    </Appenders>
    <Loggers>
        <Root level="info">
            <AppenderRef ref="Console" />
        </Root>
    </Loggers>
</Configuration>

위의 설정 파일은 콘솔로 출력하는 단순한 설정 예제입니다. 더 복잡한 설정은 Log4j2 문서를 참조해주세요.

4. 결과 확인

이제, 위의 LoggingApp 클래스를 실행해보세요. 콘솔에서는 다음과 같은 로그 메시지를 확인할 수 있습니다.

DEBUG LoggingApp - Debug message
INFO  LoggingApp - Info message
WARN  LoggingApp - Warning message
ERROR LoggingApp - Error message

추가 로깅 앱을 구현하기 위해 SLF4J와 Log4j2를 사용하는 방법에 대해 알아보았습니다. 이를 통해 좀 더 강력하고 효율적인 로깅 앱을 구현할 수 있습니다.

자세한 내용은 SLF4JLog4j2 공식 문서를 참조해주세요.