[java] Log4j의 로깅 메소드 로그를 콘솔로 출력하는 방법

Log4j는 자바에서 로깅을 위한 표준 라이브러리로 널리 사용됩니다. 이 라이브러리를 사용하면 콘솔에 로그를 출력하거나 파일에 기록하는 등 다양한 방식으로 로깅을 처리할 수 있습니다. 이 글에서는 Log4j의 로깅 메소드를 사용하여 로그를 콘솔에 출력하는 방법을 알아보겠습니다.

1. Log4j 의존성 추가

먼저, 프로젝트에 Log4j를 추가해야 합니다. 이를 위해 프로젝트의 pom.xml 파일에 다음과 같이 Log4j의 의존성을 추가합니다.

<dependencies>
    <!-- other dependencies -->

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

이제 Maven을 사용하여 의존성을 다운로드하고 프로젝트를 빌드할 수 있습니다.

2. 로그 설정 파일 작성

Log4j를 사용하기 위해 로그 설정 파일을 작성해야 합니다. 이 설정 파일은 로깅 레벨, 출력 형식, 출력 위치 등 Log4j의 동작을 지정합니다. 일반적으로 log4j2.xml 또는 log4j2.properties라는 이름으로 작성되며, 프로젝트의 classpath에 위치해야 합니다.

아래는 log4j2.xml 파일의 예시입니다.

<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
    <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="debug">
            <AppenderRef ref="Console"/>
        </Root>
    </Loggers>
</Configuration>

위 설정 파일에서는 콘솔에 로그를 출력하도록 Console Appender를 정의하였습니다. 출력 형식은 PatternLayout으로 지정하였고, %d, %t, %level, %logger, %msg 등 다양한 패턴을 사용할 수 있습니다.

3. 로깅 메소드 사용

Log4j 설정 파일을 작성했으므로 이제 자바 코드에서 로깅 메소드를 사용하여 로그를 출력할 수 있습니다. Log4j는 일반적으로 LogManager.getLogger() 메소드를 사용하여 Logger 객체를 얻어와서 로그를 출력합니다.

아래는 예시 코드입니다.

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

public class MyApp {
    private static final Logger logger = LogManager.getLogger(MyApp.class);

    public static void main(String[] args) {
        logger.debug("Debug 로그 메시지");
        logger.info("Info 로그 메시지");
        logger.warn("Warn 로그 메시지");
        logger.error("Error 로그 메시지");
    }
}

위 코드에서는 Logger 객체를 LogManager.getLogger() 메소드를 통해 얻어온 후, debug(), info(), warn(), error() 등의 메소드를 사용하여 각각 다른 로깅 레벨의 메시지를 출력하고 있습니다.

4. 콘솔 출력 확인

로그를 콘솔에 출력하도록 설정했으므로, 위 예시 코드를 실행해보면 로그가 콘솔에 출력되는 것을 확인할 수 있습니다.

17:30:15.123 [main] DEBUG com.example.MyApp - Debug 로그 메시지
17:30:15.125 [main] INFO  com.example.MyApp - Info 로그 메시지
17:30:15.126 [main] WARN  com.example.MyApp - Warn 로그 메시지
17:30:15.127 [main] ERROR com.example.MyApp - Error 로그 메시지

위와 같이 시간, 스레드, 로그 레벨, 로그를 출력한 클래스 등의 정보와 함께 설정한 로그 메시지가 콘솔에 출력됩니다.

이와 같이 Log4j를 사용하여 로깅 메소드 로그를 콘솔에 출력하는 방법에 대해 알아보았습니다. Log4j의 다양한 설정 및 기능에 대한 자세한 내용은 Log4j 공식 문서를 참고하시기 바랍니다.