记录器返回的Handler大小为0。为什么?

时间:2018-10-01 10:22:17

标签: java java.util.logging

记录器返回的处理程序大小为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

1 个答案:

答案 0 :(得分:2)

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

  

默认情况下,记录器还将其输出发送到其父记录器。

然后尝试:

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