[java] Log4j의 로깅 메소드 로그를 주기적으로 회전하는 방법

Log4j는 자바 어플리케이션에서 로깅을 위해 널리 사용되는 강력한 라이브러리입니다. 로깅은 시스템의 동작을 디버깅하고 추적하기 위해 중요한 역할을 합니다. 하지만 로그 파일이 계속해서 증가하면 디스크 공간을 차지할 뿐만 아니라 로그 파일을 분석하기도 어렵게 만듭니다. 이러한 문제를 해결하기 위해 로그 파일을 주기적으로 회전하는 방법을 알아보겠습니다.

Log4j의 파일 로거 설정

먼저 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=5
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %p [%t] %c - %m%n

위 설정에서 log4j.appender.FILE.File은 로그 파일의 경로를 나타냅니다. log4j.appender.FILE.MaxFileSize는 각 파일의 최대 크기를 지정하며, 여기서는 10MB로 설정되어 있습니다. log4j.appender.FILE.MaxBackupIndex는 유지되는 로그 파일의 최대 개수를 나타냅니다. 즉, 여기서는 최대 5개의 백업 파일이 유지됩니다.

로그 파일 회전 구성

위 설정에서 org.apache.log4j.RollingFileAppender를 사용하고 있으므로 로그 파일 회전이 자동으로 처리됩니다. 이는 MaxFileSize에 지정된 크기에 도달하면 새로운 파일을 만들고 이전 파일은 백업 파일로 이동합니다. MaxBackupIndex에 지정된 개수를 초과하는 백업 파일은 삭제됩니다.

이제 Log4j는 설정된 크기에서 자동으로 로그 파일을 회전할 것입니다. 이를 통해 로그 파일의 크기를 제한하고 디스크 공간을 절약할 수 있습니다.

참고 자료