내 애플리케이션을 log4j 1.2에서 log4j2-2.8.1 버전으로 마이그레이션하는 중입니다. 다음은 log4j.properties 파일의 기존 1.x 구성입니다. log4j 1.2에서 log4j2로 마이그레이션
log4j.appender.JSERRORFILE=org.apache.log4j.DailyRollingFileAppender
log4j.appender.JSERRORFILE.File=${log4j.loglocation}/jserror.log
log4j.appender.JSERRORFILE.layout=org.apache.log4j.PatternLayout
log4j.appender.JSERRORFILE.layout.ConversionPattern=%d %-5p %c - %m%n
log4j.logger.com.app.JavascriptLogger=ERROR,JSERRORFILE
log4j.additivity.com.app.JavascriptLogger=false
는 해당 XML 구성 log4j2.xml이를 변환 :
<RollingFile name="JSERRORFILE" fileName="${log-path}/jserror.log">
<PatternLayout pattern="%d %-5p %c - %m%n" />
</RollingFile>
<Logger name="com.app.JavascriptLogger" level="ERROR" additivity="false">
<AppenderRef ref="JSERRORFILE"/>
</Logger>
변환 후, 나는 다음과 같은 오류가 계속 :
org.apache.logging.log4j.core.config.ConfigurationException: Arguments given for element RollingFile are invalid
어떤 도움
주시면 감사하겠습니다.
저는 거의 항상 CronTriggeringPolicy를 TimeBasedTriggeringPolicy 대신 DailyRollingFileAppender의 대체품으로 사용하는 것이 좋습니다. – rgoers
예제를 업데이트했습니다. 이 변화를 만들면서 나는 몇 가지 것을 알아 챘다. Log4j2 매뉴얼에는 구체적인 CronTriggeringPolicy 구체적인 예가 필요합니다. cron 표현식은 직관적이지 않습니다. 또한 TimeBased 트리거의 경우 트리거는 filePattern에만 의존합니다. cron 표현식을 사용하면 filePattern을 cron 주파수와 동기화 (유지 관리 중에 동기화 유지)하는 것은 사용자의 책임입니다. 이것은 Log4j2 매뉴얼에서 명시 적으로 언급해야합니다. –
https://issues.apache.org/jira/browse/LOG4J2-2128 –