在Java中,全局记录器和根记录器之间有什么区别?

时间:2018-03-08 20:41:47

标签: java logging global java.util.logging

在Java类Logger::getGlobal中,全局和根记录器之间有什么区别?它们是一样的吗? Logger::getParent方法返回全局记录器。并且反复调用Logger::getLogger直到结果为null将产生根记录器。当我使用name参数的空字符串调用SELECT * FROM table WHERE parent_id IN (SELECT id FROM users WHERE status = "active") ORDER BY createdate DESC LIMIT 1; 时,它是返回全局记录器还是根记录器?

http://docs.oracle.com/javase/9/docs/api/java/util/logging/Logger.html

1 个答案:

答案 0 :(得分:4)

  

在Java类java.util.logging.Logger中,全局和根记录器之间有什么区别?它们是一样的吗?

No they are not the same.

java.util.logging.LogManager$RootLogger@27082746
java.util.logging.Logger@66133adc
java.util.logging.LogManager$RootLogger@27082746

例如输出:

System.out

如您所见,根记录器是全局记录器的父级。根记录器用于将级别传播到子记录器,并用于保存可捕获所有已发布日志记录的处理程序。全局记录器只是一个已保留用于因果关系的命名记录器。它是日志记录框架的{{1}},因此仅将其用于丢弃代码。

  

Logger :: getLogger,其名称参数为空字符串,是否返回全局记录器或根记录器?

它返回根记录器。