Log4j는 자바 애플리케이션의 로깅을 쉽게 관리하기 위한 강력한 라이브러리입니다. 이 라이브러리를 사용하여 로그를 파일 형식으로 회전하는 방법을 알아보겠습니다.
1. Log4j 설정 파일 생성
먼저, Log4j 설정 파일을 생성해야 합니다. 일반적으로 log4j.properties
또는 log4j.xml
과 같은 이름으로 파일을 만듭니다.
<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
<Appenders>
<RollingFile name="fileLogger" fileName="logs/application.log" filePattern="logs/application-%d{MM-dd-yyyy}-%i.log.gz">
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />
<Policies>
<SizeBasedTriggeringPolicy size="10MB" />
</Policies>
<DefaultRolloverStrategy max="10" />
</RollingFile>
</Appenders>
<Loggers>
<Root level="INFO">
<AppenderRef ref="fileLogger" />
</Root>
</Loggers>
</Configuration>
위의 예제는 XML 형식의 Log4j 설정 파일입니다. fileLogger
라는 이름의 롤링 파일(Appender)을 정의하였습니다. fileName
속성은 로그 파일의 경로와 이름을, filePattern
속성은 롤링 파일의 패턴을 설정합니다. 날짜와 색인(%d{MM-dd-yyyy}-%i
)을 지정하여 일별로 분리된 로그 파일을 생성하고, 파일 크기가 10MB를 초과하면 롤링 파일을 생성합니다.
2. Log4j 설정 파일과 로깅 코드 연결
Log4j 설정 파일을 작성한 후, Java 애플리케이션에서 해당 설정 파일을 로딩하여 사용해야 합니다. 아래의 코드를 참고하여 설정 파일을 로딩하는 방법을 알아보세요.
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) {
// Log4j 설정 파일을 로딩
System.setProperty("log4j.configurationFile", "path/to/log4j.xml");
// 로그 메시지 출력
logger.info("Hello, Log4j!");
}
}
LogManager.getLogger()
메소드를 사용하여 Logger
객체를 생성합니다. 이때, 전체 클래스의 이름(패키지 포함)을 인자로 넘겨줍니다. System.setProperty()
메소드를 이용하여 Log4j 설정 파일의 경로를 지정합니다. 로그 메시지를 출력할 때는 생성된 Logger
객체의 메소드를 사용합니다.
3. 로그 파일 확인
위와 같이 설정 및 코드를 작성하고 애플리케이션을 실행하면, logs
디렉토리 내에 일별로 분리된 로그 파일이 생성됩니다. 각 로그 파일의 이름은 날짜와 색인을 포함하고 있으며, 최대 10개의 파일만 유지되도록 설정되어 있습니다. 파일 크기가 10MB를 초과하면 자동으로 새로운 롤링 파일이 생성됩니다.