DailyRollingFileAppender不起作用

时间:2012-10-26 03:15:40

标签: log4j rollingfileappender

我使用Log4j写一些日志我的程序。 我在这个网站上找到并阅读了很多问题和答案,但我无法解决我的问题。

这是我的代码:

1。的log4j.xml

<appender name="rollingfileAppender" class="org.apache.log4j.DailyRollingFileAppender">
    <param name="append" value="true"/>
    <param name="file" value="logs/process.log"/>
    <param name="DatePattern" value="'.'yyyy-MM-dd-HH"/>
    <layout class="org.apache.log4j.PatternLayout">
       <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss:SSS} %-5p [%c{1}] %m%n"/>
    </layout>
</appender>
<root>
    <level value="DEBUG"/>
    <appender-ref ref="rollingfileAppender"/>
    <appender-ref ref="stdout"/>
</root>

2。我的java代码

package TestPacket;

import org.apache.log4j.Logger;
import org.apache.log4j.xml.DOMConfigurator;


public class TestLog4jXML {
    static Logger logger = org.apache.log4j.Logger.getLogger(TestLog4jXML.class.getName());
    public TestLog4jXML() {
    }
    public static void main(String[] args) {
        try {
            DOMConfigurator.configure("log4j1.xml");
            logger.trace("Entering application.");
            logger.debug("Debug");
            logger.info("info");
            logger.warn("warn");
            logger.error("error");
            logger.fatal("fatal");
            lungtng();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    public static void lungtng()
    {
        logger.fatal("some text here");
        logger.info("hello picaso");
    }
}

我运行我的程序,使用eclipse,windows os。 但只有日志文件名: process.log 不是每日格式: process.log.yyyy-MM-dd-HH

谁可以向我解释这个?

2 个答案:

答案 0 :(得分:8)

答案 1 :(得分:2)

org.apache.log4j.DailyRollingFileAppender将为每天,每小时或每分钟创建新的日志文件,但当前日志的文件名始终采用您在“file”参数中指定的格式。在您的示例中,它是“process.log”。前几个小时的日志文件名格式为“process.log.yyyy-MM-dd-HH”。