[java] Log4j의 정보 로그 설정 및 사용

Log4j은 자바 어플리케이션에서 로깅을 수행하기 위한 성능 우수한 라이브러리입니다. 정보 로그는 어플리케이션의 실행 상태나 중요한 이벤트에 대한 정보를 기록하는 데 사용됩니다. 이 글에서는 Log4j을 설정하고 정보 로그를 사용하는 방법을 알아보겠습니다.

1. Log4j 라이브러리 설치하기

Log4j을 사용하기 위해서는 해당 라이브러리를 프로젝트에 포함해야 합니다. 다음과 같이 Maven을 사용하는 경우, pom.xml 파일에 Log4j 종속성을 추가합니다.

<dependencies>
    <!-- other dependencies -->
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-core</artifactId>
        <version>2.17.0</version>
    </dependency>
</dependencies>

또는 Gradle을 사용하는 경우, build.gradle 파일에 아래의 종속성을 추가합니다.

dependencies {
    // other dependencies
    implementation 'org.apache.logging.log4j:log4j-core:2.17.0'
}

설정이 완료되면 Log4j을 사용할 준비가 되었습니다.

2. Log4j 정보 로그 설정하기

Log4j의 정보 로그를 설정하기 위해서는 log4j2.xml 파일을 사용합니다. 이 파일은 자바 어플리케이션의 클래스패스에 위치해야 합니다.

다음은 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>
        <File name="File" fileName="logs/app.log">
            <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
        </File>
    </Appenders>
    <Loggers>
        <Logger name="com.example" level="info" additivity="false">
            <AppenderRef ref="Console"/>
            <AppenderRef ref="File"/>
        </Logger>
        <Root level="error">
            <AppenderRef ref="Console"/>
            <AppenderRef ref="File"/>
        </Root>
    </Loggers>
</Configuration>

이 예시에서는 콘솔과 파일로 정보 로그를 출력하도록 설정되어 있습니다. 콘솔 로그는 Console appender에 의해 출력되고, 파일 로그는 File appender를 이용해 logs/app.log 파일에 기록됩니다.

3. Log4j 정보 로그 사용하기

이제 Log4j을 사용하여 정보 로그를 기록할 수 있습니다. 자바 클래스에서 다음과 같이 Log4j Logger를 가져옵니다:

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

public class MyClass {
    private static final Logger logger = LogManager.getLogger(MyClass.class);
    
    public static void main(String[] args) {
        logger.info("This is an information log.");
    }
}

위의 예시에서는 MyClass 클래스의 로그를 위해 Log4j Logger를 가져오고, info 레벨의 로그를 출력합니다.

마무리

Log4j을 사용하여 정보 로그를 설정하고 사용하는 방법에 대해 알아보았습니다. Log4j은 다양한 로깅 기능과 유연한 설정을 제공하여 로깅 작업을 효과적으로 수행할 수 있습니다. 추가적인 설정이나 Log4j의 기능에 대해 더 자세히 알아보려면 Log4j 공식 문서를 참조하시기 바랍니다.