我是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>
统治的事实外,在日志配置方面,MyApp
和Bar
都不相关。