“JUL Logger 对象父子关系”的版本间的差异

来自姬鸿昌的知识库
跳到导航 跳到搜索
(建立内容为“1”的新页面)
 
 
第1行: 第1行:
1
+
https://www.bilibili.com/video/BV1iJ411H74S?p=7<syntaxhighlight lang="java">
 +
    // Logger 对象父子关系
 +
    @Test
 +
    public void testLogParent() {
 +
        Logger logger1 = Logger.getLogger("io.github.jihch");
 +
        Logger logger2 = Logger.getLogger("io.github");
 +
 
 +
        // 测试
 +
        System.out.println(logger1.getParent() == logger2);
 +
 
 +
        // 所有日志记录器的顶级父元素 LogManager$RootLogger,name ""
 +
        System.out.printf("logger2.getParent():%s, logger2.getParent().getName():%s\n", logger2.getParent(),
 +
                logger2.getParent().getName());
 +
 
 +
        // 关闭默认配置
 +
        logger2.setUseParentHandlers(false);
 +
 
 +
        // 创建 ConsolHandler 控制台输出
 +
        ConsoleHandler consoleHandler = new ConsoleHandler();
 +
 
 +
        // 创建简单格式
 +
        SimpleFormatter simpleFormatter = new SimpleFormatter();
 +
 
 +
        // 进行关联
 +
        consoleHandler.setFormatter(simpleFormatter);
 +
        logger2.addHandler(consoleHandler);
 +
 
 +
        // 配置日志具体级别
 +
        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");
 +
    }
 +
</syntaxhighlight>子包默认继承父包;
 +
 
 +
不写默认继承 RootLogger
 +
 
 +
RootLogger 有默认的 Handler 和 Formatter

2023年2月23日 (四) 01:59的最新版本

https://www.bilibili.com/video/BV1iJ411H74S?p=7

    // Logger 对象父子关系
    @Test
    public void testLogParent() {
        Logger logger1 = Logger.getLogger("io.github.jihch");
        Logger logger2 = Logger.getLogger("io.github");

        // 测试
        System.out.println(logger1.getParent() == logger2);

        // 所有日志记录器的顶级父元素 LogManager$RootLogger,name ""
        System.out.printf("logger2.getParent():%s, logger2.getParent().getName():%s\n", logger2.getParent(),
                logger2.getParent().getName());

        // 关闭默认配置
        logger2.setUseParentHandlers(false);

        // 创建 ConsolHandler 控制台输出
        ConsoleHandler consoleHandler = new ConsoleHandler();

        // 创建简单格式
        SimpleFormatter simpleFormatter = new SimpleFormatter();

        // 进行关联
        consoleHandler.setFormatter(simpleFormatter);
        logger2.addHandler(consoleHandler);

        // 配置日志具体级别
        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");
    }

子包默认继承父包;

不写默认继承 RootLogger

RootLogger 有默认的 Handler 和 Formatter