Log4J学习【十一】Properties配置方式测试

来源:互联网 发布:怎样咨询淘宝人工客服 编辑:程序博客网 时间:2024/05/17 20:47
上一章我们讲了Properties配置方式
    下面来运行一下测试:
0    [main] INFO  cd.itcast.log.Configure  - using default db.properties
0    [main] INFO  cd.itcast.log.Configure  - using config file in classpath:db.properties
0    [main] INFO  cd.itcast.core.LogicProcessor  - init logic processor using conf
0    [main] INFO  cd.itcast.core.LogicProcessor  - process some logic

    正确输出日志,并且按照我们的配置输出日志。
    先不考虑这个配置文件的细节,我们来想一下这样做之后的代码模式。首先,我们仍然需要在系统启动的时候,采用某种机制来使用PropertyConfigurator类来读入配置文件,这时候只需要再引入一个PropertyConfigurator类即可,不再需要引入其他诸如Appender的类了,其次,我们把所有针对某一些Logger的配置全部移到了.properties文件,就达到了使用配置文件来动态配置系统日志的功能了。总体来讲,这个改进是很明显的。当然,后面我们还可以看到Log4J为我们考虑的更多。
    下面我们就来详细考察一下使用properties配置的过程及配置格式。首先一点,为什么当我加入了log4j.properties,按照这种方式完成配置,Log4j就能认识了呢?他是怎么做的?换句话说,我们能不能通过日志的方式看到Log4J内部的配置流程呢?是的,要看到Log4J内部的日志(这很有意思,日志框架如果自己的代码都不做日志,其他程序员还敢用么?)只需要在刚才的log4j.properties文件中加入一行配置:
log4j.debug=true

    我们再次运行测试:
log4j: Parsing for [root] with value=[INFO,A].
log4j: Level token is [INFO].
log4j: Category root set to INFO
log4j: Parsing appender named "A".
log4j: Parsing layout options for "A".
log4j: Setting property [conversionPattern] to [%-4r [%t] %-5p %c %x - %m%n].
log4j: End of parsing for "A".
log4j: Parsed "A" options.
log4j: Finished configuring.

    输出会多出这些Log4J本身的日志信息。这里大家需要注意一点的就是,Log4J本身的日志信息只能输出到Console中,没法输出到其他目的地。大家可以仔细看看这个流程,是不是很清晰?这里需要注意一点的是,按照正常的情况,这段内置的日志信息会被输出两次,主要的问题就是我们在rootLogger上面多绑定了一个ConsoleAppender;如果没有绑定这个appender或者这个appender是一个ConsoleAppender以外的,就只会出现一次。
0 0
原创粉丝点击