Log4j中的默认配置文件需要存放在classpath目录下

【前言】使用BasicConfigurator.configure();可以对rootlog进行默认的配置,但是我又想改变一下默认的rootlogger的配置。发现把log4j.properties放在classpath的目录下是可以实现的。

BasicConfigurator.configure()

BasicConfigurator.configure()方法使用最简的方法配置log4j环境。注:所谓配置log4j环境,就是指配置root logger,因为所有其它的logger都是root logger的后代,所以它们(默认情况下)都将继承root logger的性质。

 

BasicConfigurator.configure()完成的任务是:

  • 用默认pattern创建PatternLayout对象p:
    PatternLayout p = new PatternLayout("%-4r[%t]%-5p%c%x - %m%n");
  • 用p创建ConsoleAppender对象a,目标是system.out,标准输出设备:
    ConsoleAppender a = new ConsoleAppender(p,ConsoleAppender.SYSTEM_OUT);
  • 为root logger增加一个ConsoleAppender p:
    rootLogger.addAppender(p);
  • 把root logger的log level设置为DEBUG级别:
    rootLogger.setLevel(Level.DEBUG);

为了改变这个配置的配置,需要将log4j.properties(当然这个文件中有我想要的配置),放在classpath目录下:log4j.properties needs to be on the classpath where log4j can find it.

 

【疑问】

1. log4j.properties这个配置文件的名称是否不能变成其他的名称,像my.properties?

【后续解释】可以,通过configure指定log4j的配置文件路径和名称

PropertyConfigurator.configure(dir+"/conf/my.properties");

 

2. 为什么即使用了log4j.properties来制定root logger的配置信息,但是实际上,打印出root logger的配置信息可以看出是由两部分组成的,也就是说输出到console的配置还是保留的。为什么呢?

 

log4j.appender.A0=org.apache.log4j.RollingFileAppender
log4j.appender.A0.append=true
log4j.appender.A0.bufferSize=8192
log4j.appender.A0.bufferedIO=false
log4j.appender.A0.file=./root.log
log4j.appender.A0.immediateFlush=true
log4j.appender.A0.maxBackupIndex=10
log4j.appender.A0.maximumFileSize=512000
log4j.appender.A0.layout=org.apache.log4j.PatternLayout
log4j.appender.A0.layout.contentType=text/plain
log4j.appender.A0.layout.conversionPattern=%d{yyyy-MM-dd} %d{HH:mm:ss,SSS} %-4r %p: (%l) %m %n
log4j.appender.A0=org.apache.log4j.ConsoleAppender
log4j.appender.A0.immediateFlush=true
log4j.appender.A0.target=System.out
log4j.appender.A0.layout=org.apache.log4j.PatternLayout
log4j.appender.A0.layout.contentType=text/plain
log4j.appender.A0.layout.conversionPattern=%r [%t] %p %c %x - %m%n
log4j.rootCategory=DEBUG, A0, A0

【参考url】

http://bytes.com/topic/java/answers/16405-log4j-where-put-properties-file

http://heavyz.sourceforge.net/homepage/homepage_zh/comp/notes/log4j.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值