[java] Log4j의 로그를 특정 파일로 분리 저장

Log4j는 자바 어플리케이션에서 사용되는 로깅 라이브러리입니다. Log4j를 사용하면 다양한 로그 메시지를 출력하고 관리할 수 있습니다. 이번에는 Log4j를 사용하여 로그를 특정 파일로 분리하여 저장하는 방법에 대해 알아보겠습니다.

1. Log4j 설정 파일 작성

Log4j의 설정은 XML 또는 프로퍼티 파일을 통해 관리됩니다. 먼저, Log4j 설정 파일을 작성해야 합니다. 예를 들어, log4j.properties 파일을 사용한다고 가정해보겠습니다.

# 로그를 파일로 저장하기 위한 설정
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=/path/to/log/file.log
log4j.appender.file.MaxFileSize=10MB
log4j.appender.file.MaxBackupIndex=10
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d [%t] %-5p %c - %m%n

# 기본적인 로그 출력 설정
log4j.rootLogger=INFO, file

위의 설정 파일에서 log4j.appender.file.File 속성을 통해 로그 파일의 경로를 지정할 수 있습니다. 로그 파일의 크기와 백업 인덱스는 log4j.appender.file.MaxFileSizelog4j.appender.file.MaxBackupIndex로 설정할 수 있습니다. log4j.appender.file.layout.ConversionPattern 속성을 통해 로그 메시지의 포맷을 지정할 수 있습니다.

2. Log4j 라이브러리 설정

다음으로, Log4j 라이브러리를 프로젝트에 추가해야 합니다. Maven을 사용하는 경우, pom.xml 파일에 다음과 같은 디펜던시를 추가합니다.

<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.17</version>
</dependency>

Gradle을 사용하는 경우, build.gradle 파일에 다음과 같이 디펜던시를 추가합니다.

dependencies {
    implementation 'log4j:log4j:1.2.17'
}

3. Log4j를 활용한 로그 출력

Log4j가 설정되면, 어플리케이션 코드에서 로그를 출력할 수 있습니다. 예를 들어, 다음과 같은 코드를 사용하여 로그를 출력할 수 있습니다.

import org.apache.log4j.Logger;

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

    public void myMethod() {
        logger.debug("This is a debug message");
        logger.info("This is an info message");
        logger.warn("This is a warning message");
        logger.error("This is an error message");
    }
}

위의 코드에서 import org.apache.log4j.Logger를 통해 Logger 클래스를 임포트하고, private static final Logger logger = Logger.getLogger(MyClass.class)를 통해 Logger 객체를 생성합니다. 그리고 관련 로그 레벨별로 로그 메시지를 출력할 수 있습니다.

4. 로그 파일 확인

어플리케이션이 실행되면 log4j.appender.file.File로 지정한 경로에 로그 파일이 생성됩니다. 해당 파일을 열어 로그를 확인할 수 있습니다.

참고 자료