编程语言
首页 > 编程语言> > 在Java中,全局记录器和根记录器之间有什么区别?

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

作者:互联网

Java类java.util.logging.Logger中,全局和根记录器之间有什么区别?它们是一样的吗? Logger :: getGlobal方法返回全局记录器.并重复调用Logger :: getParent直到结果为null将产生根记录器.当我使用name参数的空字符串调用Logger :: getLogger时,它是返回全局记录器还是根记录器?

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

解决方法:

In the Java class java.util.logging.Logger, what is the difference between the global and the root loggers? Are they the same?

No they are not the same.

public static void main(String[] args) throws Exception {
    System.out.println(Logger.getLogger(""));
    System.out.println(Logger.getGlobal());
    System.out.println(Logger.getGlobal().getParent());
}

例如输出:

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

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

Logger::getLogger with an empty string for the name argument, does this return the global logger or the root logger?

它返回根记录器.

标签:java,global,java-util-logging,logging
来源: https://codeday.me/bug/20190522/1153127.html