JUL中Logger之间存在父子关系,这种父子关系通过树状结构存储,JUL在初始化时会创建一个顶层RootLogger作为所有Logger父Logger,存储上作为树状结构的根节点。并父子关系通过路径来关联。
@Test
public void testLogParent() throws Exception {
// 日志记录器对象父子关系
Logger logger1 = Logger.getLogger( "com.huanhuan" );
Logger logger2 = Logger.getLogger( "com" );
System.out.println( logger1.getParent() == logger2 ); //true
// 所有日志记录器对象的顶级父元素 class为java.util.logging.LogManager$RootLogger name为""
System.out.println( "logger2 parent:" + logger2.getParent() + ",name:" + logger2.getParent().getName() );
// 一、自定义日志级别
// a.关闭系统默认配置
logger2.setUseParentHandlers( false );
// b.创建handler对象
ConsoleHandler consoleHandler = new ConsoleHandler();
// c.创建formatter对象
SimpleFormatter simpleFormatter = new SimpleFormatter();
// d.进行关联
consoleHandler.setFormatter(simpleFormatter);
logger2.addHandler(consoleHandler);
// e.设置日志级别
logger2.setLevel(Level.ALL);
consoleHandler.setLevel(Level.ALL);
// 测试日志记录器对象父子关系
logger1.severe("severe");
logger1.warning("warning");
logger1.info("info");
logger1.config("config");
logger1.fine("fine");
logger1.finer("finer");
logger1.finest("finest");
//日志2优先于日志1
}
打印结果
D:\java\java\jdk1.8.0_92\bin\java.exe -ea -Didea.test.cyclic.buffer.size=1048576 "-javaagent:F:\Big DATA\IntelliJ IDEA 2020.1\lib\idea_rt.jar=8455:F:\Big DATA\IntelliJ IDEA 2020.1\bin" -Dfile.encoding=UTF-8 -classpath "F:\Big DATA\IntelliJ IDEA 2020.1\lib\idea_rt.jar;F:\Big DATA\IntelliJ IDEA 2020.1\plugins\junit\lib\junit5-rt.jar;F:\Big DATA\IntelliJ IDEA 2020.1\plugins\junit\lib\junit-rt.jar;D:\java\java\jdk1.8.0_92\jre\lib\charsets.jar;D:\java\java\jdk1.8.0_92\jre\lib\deploy.jar;D:\java\java\jdk1.8.0_92\jre\lib\ext\access-bridge-64.jar;D:\java\java\jdk1.8.0_92\jre\lib\ext\cldrdata.jar;D:\java\java\jdk1.8.0_92\jre\lib\ext\dnsns.jar;D:\java\java\jdk1.8.0_92\jre\lib\ext\jaccess.jar;D:\java\java\jdk1.8.0_92\jre\lib\ext\jfxrt.jar;D:\java\java\jdk1.8.0_92\jre\lib\ext\localedata.jar;D:\java\java\jdk1.8.0_92\jre\lib\ext\nashorn.jar;D:\java\java\jdk1.8.0_92\jre\lib\ext\sunec.jar;D:\java\java\jdk1.8.0_92\jre\lib\ext\sunjce_provider.jar;D:\java\java\jdk1.8.0_92\jre\lib\ext\sunmscapi.jar;D:\java\java\jdk1.8.0_92\jre\lib\ext\sunpkcs11.jar;D:\java\java\jdk1.8.0_92\jre\lib\ext\zipfs.jar;D:\java\java\jdk1.8.0_92\jre\lib\javaws.jar;D:\java\java\jdk1.8.0_92\jre\lib\jce.jar;D:\java\java\jdk1.8.0_92\jre\lib\jfr.jar;D:\java\java\jdk1.8.0_92\jre\lib\jfxswt.jar;D:\java\java\jdk1.8.0_92\jre\lib\jsse.jar;D:\java\java\jdk1.8.0_92\jre\lib\management-agent.jar;D:\java\java\jdk1.8.0_92\jre\lib\plugin.jar;D:\java\java\jdk1.8.0_92\jre\lib\resources.jar;D:\java\java\jdk1.8.0_92\jre\lib\rt.jar;E:\google加速器\mysql-connector-java-5.1.38\mysql-connector-java-5.1.38-bin.jar;E:\Project\The_Log\Jul_Demo\target\classes;E:\maven\repository\junit\junit\4.12\junit-4.12.jar;E:\maven\repository\org\hamcrest\hamcrest-core\1.3\hamcrest-core-1.3.jar" com.intellij.rt.junit.JUnitStarter -ideVersion5 -junit4 com.huanhuan.Jul_Test,testLogParent
true
logger2 parent:java.util.logging.LogManager$RootLogger@61e4705b,name:
四月 26, 2021 8:17:14 下午 com.huanhuan.Jul_Test testLogParent
严重: severe
四月 26, 2021 8:17:14 下午 com.huanhuan.Jul_Test testLogParent
警告: warning
四月 26, 2021 8:17:14 下午 com.huanhuan.Jul_Test testLogParent
信息: info
四月 26, 2021 8:17:14 下午 com.huanhuan.Jul_Test testLogParent
配置: config
四月 26, 2021 8:17:14 下午 com.huanhuan.Jul_Test testLogParent
详细: fine
四月 26, 2021 8:17:14 下午 com.huanhuan.Jul_Test testLogParent
较详细: finer
四月 26, 2021 8:17:14 下午 com.huanhuan.Jul_Test testLogParent
非常详细: finest
Process finished with exit code 0