Java log4j2:模式不包含日期
我试图迁移到log4j2,得到了一个java.lang.IllegalStateException:“模式不包含日期。” 我为每个滚动文件设置了一个文件模式,所以我不确定我做错了什么。仅供参考,我正在运行Eclipse上的Tomcat(开普勒) 这是我的log4j2.xml:Java log4j2:模式不包含日期,java,eclipse,log4j2,Java,Eclipse,Log4j2,我试图迁移到log4j2,得到了一个java.lang.IllegalStateException:“模式不包含日期。” 我为每个滚动文件设置了一个文件模式,所以我不确定我做错了什么。仅供参考,我正在运行Eclipse上的Tomcat(开普勒) 这是我的log4j2.xml: <?xml version="1.0" encoding="UTF-8"?> <Configuration status="WARN"> <Appenders>
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss,SSS} [%-5p] - %m%n" />
</Console>
<RollingFile name="RootFile" fileName="injunction.log" immediateFlush="false" append="false"
filePattern="injunction.log.%d{yyyy-MM-dd}">
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss,SSS} [%-5p] - %m%n"/>
<Policies>
<!-- Roll over the file to the next day -->
<TimeBasedTriggeringPolicy />
</Policies>
<!-- Only keep up to 30 archived log files -->
<DefaultRolloverStrategy max="30"/>
</RollingFile>
<RollingFile name="DBFile" fileName="db.log" immediateFlush="false" append="false"
filePattern="db.log.%d{yyyy-MM-dd}">>
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss,SSS} [%-5p] - %m%n"/>
<Policies>
<!-- Roll over the file to the next day -->
<TimeBasedTriggeringPolicy />
</Policies>
<!-- Only keep up to 30 archived log files -->
<DefaultRolloverStrategy max="30"/>
</RollingFile>
</Appenders>
<Loggers>
<Root level="debug">
<AppenderRef ref="Console" />
<AppenderRef ref="RootFile" />
</Root>
<Logger name="DBLogger" level="debug" additivity="false">
<AppenderRef ref="Console" />
<AppenderRef ref="DBFile" />
</Logger>
</Loggers>
</Configuration>
>
基于时间的触发策略需要日期来确定文件应滚动的频率此问题似乎已自行解决。我将log4j2.xml移到了Eclipse的src目录的顶部,这就成功了。这是我从Apache中找到的关于基于时间的触发策略:“根据日期模式中最具体的时间单位,滚动发生的频率。例如,对于以小时为最具体项目的日期模式,每4小时将发生4次滚动。默认值是1。“默认值不应该是1天吗?它基于日期模式中反映的最小单位,在您的情况下是秒。如果您需要,您需要将间隔设置为全天的秒数。此外,我认为您需要添加DatePattern字段(看起来您试图通过FilePattern进行此操作)我将不得不暂时搁置这个问题,因为Eclipse已经决定它无法再找到我的log4j2.xml文件。@coffeeaddict你能不能用一个例子详细说明一下?