我是log4j的新手。在互联网上阅读时,子记录器继承了父记录器设置。通常在同一包中给出两个类的示例。但是,如果这些类位于不同的包中怎么办?例如

import com.foo.Bar;

public class MyApp{
   static Logger logger = Logger.getLogger(MyApp.class);

   public static void main(String[] args) {
      BasicConfigurator.configure(); // default logging level is debug
      Bar bar = new Bar();
      bar.doIt();
   }
}


和第二类不同的包

package mypackage;
import org.apache.log4j.Logger;

public class Bar {
   static Logger logger = Logger.getLogger(Bar.class);

public void doIt() {
     logger.debug("Did it again!");
   }
 }


那么Bar类中的logger的级别是多少?

最佳答案

MyApp是默认程序包。请注意,不建议使用默认软件包,因为此question中已对此进行了回答。

我认为不可能为默认程序包定义自定义<logger>,因此必须应用<root>

除非您为<logger>定义自定义mypackage.Bar,否则<root>也适用于该类。

除了它们都可能受<root>统治的事实外,在日志配置方面,MyAppBar都不相关。

10-07 13:28
查看更多