记录器返回处理程序大小为 0。为什么?

Logger returning Handler size as 0. Why?

Logger 返回处理程序大小 0,但仍在控制台中记录语句。

package com.amarpandey;

import java.util.logging.Logger;

public class Test {

    public static void main(String[] args) {

        Logger logger = Logger.getLogger("com.amarpandey.test");

        System.out.println("Number of Handlers : " + logger.getHandlers().length);

        logger.severe("severe");
        logger.warning("warning");

    }
}

执行上述代码时,Logger 内部处理程序数组的大小为0。但我仍然可以看到,控制台中的所有日志。

控制台输出:

Number of Handlers : 0
Oct 01, 2018 3:54:19 PM com.amarpandey.Test main
SEVERE: severe
Oct 01, 2018 3:54:19 PM com.amarpandey.Test main
WARNING: warning

它可以使用父级的处理程序,参见 doc:

By default, Loggers also send their output to their parent logger.

然后尝试:

System.out.println(logger.getParent().getHandlers().length); // 1