[java] Log4j의 로깅 포맷 설정 방법

Log4j는 자바에서 사용되는 로깅 라이브러리로, 로그 메시지를 생성하고 로그를 기록하는 기능을 제공합니다. Log4j의 로깅 포맷은 로그 메시지의 출력 형식을 지정하는 방법을 말합니다. 이 포맷을 설정하여 로그 메시지를 읽기 쉽게 만들거나 특정 정보를 추가할 수 있습니다.

Log4j의 로깅 포맷을 설정하는 방법은 다음과 같습니다.

1. log4j.properties 파일 수정

가장 일반적인 방법은 log4j.properties 파일을 수정하여 로깅 포맷을 설정하는 것입니다. log4j.properties 파일은 Log4j 설정 파일로써, 로깅 관련 속성들을 포함하고 있습니다. 이 파일을 열고 다음과 같이 로깅 패턴을 지정합니다.

log4j.appender.FILE.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

위 예제에서 %d{yyyy-MM-dd HH:mm:ss}는 날짜/시간 포맷을 지정하고, %-5p는 로그 레벨을 표시합니다. %c{1}은 로그를 호출한 클래스의 이름을 표시하고, %L는 로그를 호출한 라인 번호를 표시합니다. 마지막으로 %m%n은 로그 메시지와 줄바꿈 문자를 표시합니다.

이외에도 다양한 로깅 패턴 옵션을 사용할 수 있으며, 자세한 내용은 Log4j 문서를 참고하세요.

2. XML 설정 파일 수정

Log4j는 XML 형식의 설정 파일을 사용할 수도 있습니다. XML 설정 파일을 사용하는 경우, 로깅 포맷을 설정하는 부분은 다음과 비슷한 형식을 가집니다.

<appender name="FILE" class="org.apache.log4j.FileAppender">
    <param name="File" value="logs/sample.log" />
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n" />
    </layout>
</appender>

<param name="ConversionPattern"> 요소를 사용하여 로깅 패턴을 지정합니다. 위의 예제와 동일한 패턴을 사용하고 있습니다.

3. 로깅 코드에서 직접 설정

마지막으로, 로깅 코드에서 직접 로깅 포맷을 설정할 수도 있습니다. 이 경우 코드에서 다음과 같이 로깅 패턴을 지정합니다.

import org.apache.log4j.Logger;
import org.apache.log4j.PatternLayout;
import org.apache.log4j.ConsoleAppender;

public class MyApp {
    private static final Logger logger = Logger.getLogger(MyApp.class);
    
    public static void main(String[] args) {
        PatternLayout layout = new PatternLayout("%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n");
        ConsoleAppender appender = new ConsoleAppender(layout);
        logger.addAppender(appender);
        
        // 로그 메시지 출력
        logger.info("Hello, Log4j!");
    }
}

위의 예제에서 %d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n 부분이 로깅 패턴을 설정하는 부분입니다.

참고 자료

이제 위의 방법들을 활용하여 Log4j의 로깅 포맷을 설정하는 방법을 익힐 수 있습니다. 로깅 포맷을 설정함으로써 로그 메시지의 가독성을 높이고 필요한 정보를 포함시킬 수 있습니다.