Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java LoggerFactory.getLogger“中的区别是什么;根“;vs";“类”;名称_Java_Slf4j - Fatal编程技术网

Java LoggerFactory.getLogger“中的区别是什么;根“;vs";“类”;名称

Java LoggerFactory.getLogger“中的区别是什么;根“;vs";“类”;名称,java,slf4j,Java,Slf4j,我正试图找到以下两者之间差异的答案: class MyClass { private static Logger logger = LoggerFactory.getLogger(Logger.ROOT_LOGGER_NAME); } 以及: 它是否只对计划进行精细日志设置的用户有用?像在不同的文件中分开类的日志一样,为每个类打印更多/更少的信息,等等 我有这个疑问,因为我使用的大多数类都是LoggerFactory.getLogger(MyClass.class),但我认为Logge

我正试图找到以下两者之间差异的答案:

class MyClass {
    private static Logger logger = LoggerFactory.getLogger(Logger.ROOT_LOGGER_NAME);
}
以及:

它是否只对计划进行精细日志设置的用户有用?像在不同的文件中分开类的日志一样,为每个类打印更多/更少的信息,等等

我有这个疑问,因为我使用的大多数类都是
LoggerFactory.getLogger(MyClass.class)
,但我认为
LoggerFactory.getLogger(Logger.ROOT\u Logger\u NAME)
在大多数情况下已经足够了

谢谢

它是否只对计划进行精细日志设置的用户有用?像在不同的文件中分开类的日志一样,为每个类打印更多/更少的信息,等等

这是正确的。通过将日志记录控制到类级别,并为每个类提供自己的记录器,您可以更精细地控制日志记录。例如,我们通常记录包中类的所有日志条目(无论级别),例如
my.employer.com.team.project
。然后,我们为所有其他记录器记录错误。然后,我们可以查看应用程序上正在使用的所有记录器,并可以远程实时启用/禁用我们想要的任何记录器

我有这个疑问,因为我的大多数类都使用LoggerFactory.getLogger(MyClass.class),但我认为LoggerFactory.getLogger(Logger.ROOT\u Logger\u NAME)在大多数情况下已经足够了

如果给所有类提供相同的记录器,那么它们的行为方式都是相同的。我认为您是对的,在大多数情况下,您将以相同的方式对待所有类的日志记录,但情况并非总是如此。此外,如果您正在编写库代码,则不能使用根日志记录器,因为现在您删除了库用户的日志调优功能

class MyClass {
    private static Logger logger = LoggerFactory.getLogger(MyClass.class);
}