将Log4j 1.2.17
版本迁移至Log4j 2.20.0
版本。
log4j2.xml - XML配置文件
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
<Appenders>
<!-- RollingFile filePattern="logs/$${date:yyyy-MM}/app-%d{yyyy-MM-dd}-%i.log.gz" is also not set here. I do want the log files not be rolled automatically. -->
<RollingFile name="RollingFile"
fileName="logs/app.log">
<PatternLayout>
<Pattern>%d %p %c{1.} [%t] %m%n</Pattern>
</PatternLayout>
<!-- I do not want to specify any Policies. So, Policies are not set here -->
<!-- <Policies>-->
<!-- <SizeBasedTriggeringPolicy size="10 MB"/>-->
<!-- </Policies>-->
</RollingFile>
</Appenders>
<Loggers>
<Root level="trace">
<AppenderRef ref="RollingFile"/>
</Root>
</Loggers>
</Configuration>
滚动文件“文件模式”属性
据我所知,RollingFile的“filePattern”属性是可选的。如果不指定filePattern属性,日志文件将不会自动滚动,也不会被删除。RollingFile附加器有一个可选的filePattern属性,允许您指定日志文件的名称模式。此名称模式可用于根据日志文件的大小、日期如果不指定filePattern,日志文件将保持相同的名称,并且不会滚动。
滚动将策略元素归档。
据我所知,Policies元素是可选的。如果不指定Policies元素,则不会自动滚动日志文件,也不会删除日志文件。如果不指定Policies元素,则不会自动滚动日志文件,也不会删除日志文件。
但是,我发现以下异常。如何修复它?
org.apache.logging.log4j.core.config.ConfigurationException: Arguments given for element RollingFile are invalid: field 'filePattern' has invalid value 'null', field 'policy' has invalid value 'null'
1条答案
按热度按时间nkoocmlb1#
我就是这样解决这个问题的。
我参考了下面的教程并定制了示例XML配置。
3.2.滚动“每日”部分。
https://howtodoinjava.com/log4j2/log4j2-rollingfileappender-example/
我必须指定filePattern属性和TimeBasedTriggeringPolicy。