log4j的默认level

来源:互联网 发布:mac pc 区别 编辑:程序博客网 时间:2024/05/02 04:55

通过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级别打日志。