log4j的默认level

通过log4j.xml配置logger时一般要指定<level value="${xxx_loggingLevel}" />,如果将这段漏掉了,log4j会设置一个null level。但需要注意的是这样不会有问题。

看Category的getEffectiveLevel()方法:

/** 
Starting from this category, search the category hierarchy for a 
non-null level and return it. Otherwise, return the level of the 
root category. 
The Category class is designed so that this method executes as 
quickly as possible. 

*/ 
public 
Level getEffectiveLevel() { 
for(Category c = this; c != null; c=c.parent) { 
if(c.level != null) 
return c.level; 
} 
return null; // If reached will cause an NullPointerException. 
} 
从当前Category开始,向上寻找第一个有效的Level。

最终会找到rootLogger的level,rootLogger的level不可能为空(setLeve时做了限制)

再看下Logmanager

Hierarchy h = new Hierarchy(new RootLogger((Level) Level.DEBUG));

rootLogger的level初始为DEBUG级别。所以在这种情况下会以debug级别打日志。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值