Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java log4j2:模式不包含日期_Java_Eclipse_Log4j2 - Fatal编程技术网

Java log4j2:模式不包含日期

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>

我试图迁移到log4j2,得到了一个java.lang.IllegalStateException:“模式不包含日期。”

我为每个滚动文件设置了一个文件模式,所以我不确定我做错了什么。仅供参考,我正在运行Eclipse上的Tomcat(开普勒)

这是我的log4j2.xml:

<?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你能不能用一个例子详细说明一下?