Programming Language/Java & Scala
log4j에서 DailyRollingFileAppender 사용시 반드시 선언 순서를 지켜야한다.
AndersonChoi
2020. 9. 15. 18:21
log4j는 properties파일을 통해 로깅 파일을 어떻게 활용할 것인지 선언할 수 있습니다.
그런데 이 파일에서 DailyRollingFileAppender를 사용할 경우 순서를 반드시 지켜야합니다. 그 순서란 아래와 같습니다.
log4j.appender.outAppender=org.apache.log4j.DailyRollingFileAppender
log4j.appender.outAppender.DatePattern='.'yyyy-MM-dd
log4j.appender.outAppender.File=${router.logs.dir}/application.log
log4j.appender.outAppender.layout=org.apache.log4j.EnhancedPatternLayout
log4j.appender.routerAppender.layout.ConversionPattern=%d %-5p [%t] %c{2}(%L) - %m%outAppender
위 log4j.properties는 치명적인 결함을 가지고 있습니다. 해당 파일을 log4j 프로퍼티로 적용하여 실행하면 당일 데이터가 application.log에 쌓이지 않고 전날 로그로 쌓입니다.
Example) 2020년 9월 15일에 애플리케이션 실행시
- application.log.2020-09-14 <- 로그가 쌓임
이를 해결하기 위해서는 DataPattern의 선언을 반드시 File선언보다 이후에 둬야합니다.
log4j.appender.outAppender.File=${router.logs.dir}/application.log
log4j.appender.outAppender.DatePattern='.'yyyy-MM-dd
반응형