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
반응형
'Programming Language > Java & Scala' 카테고리의 다른 글
Math함수를 이용하여 랜덤 숫자 추출하기 (0) | 2021.05.11 |
---|---|
자바와 스칼라 차이점 (1) | 2020.12.10 |
인증서란? openJDK의 cacerts 설명 (0) | 2020.09.16 |
JVM 기반 애플리케이션 운영시 스레드 덤프를 통한 이슈 해결 (1) | 2020.07.29 |
sbt 실행시 '/modules/java.base/java/lang/String.class' is broken 이슈 해결 방법 (0) | 2020.05.25 |
Java GC 종류별 도식화 (1) | 2020.03.08 |