Log4J学习【二十二】常用的Appender之DailyRollingFileAppender

来源:互联网 发布:linux arp 清除 编辑:程序博客网 时间:2024/05/08 22:13
上一章最后我们提到了DailyRollingFileAppender。
    DailyRollingFileAppender提供了按照特定时间生成一份日志文件的方式,这个类的设计比较有灵活。首先,这个类是继承FileAppender的,所以他具有FileAppender相关的所有属性配置,另外,这个Appender仅仅提供了一个额外的配置:
    datePattern:设置日期格式。这个日期格式是一个String,其实就是在SimpleDateFormat中允许的日期格式。这个参数有两个作用,1,他设置了分隔日志文件的间隔;2,设置了日志文件的后缀名。要发现这个规律,我们只需要写一个小的测试来看看即可:
log4j.rootLogger=DEBUG,file
log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.conversionPattern=%r [%t] %p %c %x - %m%n
log4j.appender.file.file=log.log
log4j.appender.file.datePattern='.'yyyy-MM-dd-HH-mm

    在配置文件中,我们配置基础的日志文件名称为log.log,并且设置了日期格式为’.’yyyy-mm-dd-mm,这个格式可能比较奇怪,先不管前面的’.’,后面的yyyy-MM-dd-HH-mm意思很明确,即年-月-日-时-分。下面只需要测试超过分钟的测试即可:
@Test
public void testDailyRollingFileAppender() throws Exception{
    Logger logger = Logger.getLogger("cd.itcast");
    Logger barLogger = Logger.getLogger("cd.itcast.log");
    for (int i = 0; i < 130; i++) {
        Thread.sleep(1000);
        logger.warn("logger warn");
        logger.debug("logger debug");
        barLogger.info("bar logger info");
        barLogger.debug("bar logger debug long long ");
    }
}


    运行测试,可以看到在项目下生成了3个日志文件,有两个日志文件的名称按照log.log.年-月-日-时-分的方式备份。看到这里,基本就明白了datePattern前面的’.’的含义,因为是直接做为文件的后缀,所以,前面需要用一个’.’来表明后缀名的追加(可以简单尝试一下去掉前面的’.’看看生成的文件结果样式)。既然datePattern是用来规定文件的名称的,那么很显而易见的,我们不能在datePattern中使用’/’;’;’等文件名不允许出现的字符了。
0 0
原创粉丝点击