JUL Logger 对象父子关系

来自姬鸿昌的知识库
跳到导航 跳到搜索

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