[java] Log4j의 로그 회전
Log4j는 자바 애플리케이션에서 로깅을 구현하기 위해 널리 사용되는 라이브러리입니다. 이것은 애플리케이션에서 발생하는 이벤트나 메시지를 기록하고 분석하는 데 도움을 줍니다. Log4j는 기본적으로 로그 파일을 유지하고 디스크 공간을 효율적으로 사용하기 위해 로그 파일의 크기를 관리합니다. 이것을 “로그 회전”이라고 합니다.
로그 회전은 주기적으로 로그 파일을 분리하고 새로운 로그를 작성하는 프로세스입니다. 로그 파일의 크기가 일정 기준값을 초과하면 Log4j는 현재 로그 파일을 백업하고 새로운 로그를 작성하기 시작합니다. 이를 통해 디스크 공간을 낭비하지 않고 로그를 지속적으로 기록할 수 있습니다.
Log4j의 로그 회전은 다양한 방식으로 구성할 수 있습니다. 주요 설정 옵션은 다음과 같습니다.
MaxFileSize
: 로그 파일의 최대 크기를 지정합니다. 이 값은 숫자와 크기 단위를 함께 사용하여 설정할 수 있습니다. 예를 들어 “10MB”로 설정하면 로그 파일이 10 메가바이트를 초과하면 회전이 발생합니다.MaxBackupIndex
: 백업되는 로그 파일의 최대 수를 지정합니다. 이 값은 일반적으로 1에서 10 사이의 범위로 설정됩니다. 예를 들어MaxBackupIndex=5
로 설정되면, 총 5개의 백업 파일이 생성되고 최신 로그 파일과 함께 유지됩니다.FileAppender
: Log4j에서 로그 파일을 기록하는 데 사용되는 Appender입니다. 이 옵션에서 로그 파일의 경로와 이름을 설정할 수 있습니다.
아래는 Log4j를 사용하여 로그 회전을 구성하는 예제 코드입니다.
import org.apache.log4j.Logger;
public class Log4jApp {
private static final Logger logger = Logger.getLogger(Log4jApp.class);
public static void main(String[] args) {
// 로그 회전 설정
logger.info("MaxFileSize=10MB, MaxBackupIndex=5");
logger.info("Log rotation example");
for (int i = 0; i < 100; i++) {
logger.info("Logging message " + i);
}
}
}
위의 코드에서는 logger.info()
를 사용하여 메시지를 로깅합니다. MaxFileSize
를 10MB로 설정하고 MaxBackupIndex
를 5로 설정하였으므로, 로그 파일이 10MB를 초과하면 새로운 파일로 로그가 회전됩니다.