SLF4J Java日志设计

4

我开始使用SLF4J进行日志记录,第一件让我注意到的是以下代码:

public class MyClass
{
   private static final logger = org.slf4j.LoggerFactory.getLogger(MyClass.class)
}

什么是使用类作为参数获取记录器实例的设计原则或逻辑?
2个回答

8
这样做的结果是,由该记录器生成的每个日志记录语句都包含类名。您这样做是为了:
  1. 在输出中识别该日志消息的来源
  2. 有效地过滤这些消息。您可以按类和/或包启用或禁用消息。例如,您可能希望禁用所有DAO包消息(出于任何原因)
上述内容是日志记录中非常常见的模式。但请注意,您不仅可以提供类,还可以提供自己的字符串,从而任意分类您自己的消息。

2

这只是一个缩写。查看LoggerFactory的javadoc,发现还有一个构造函数也接受String参数。

基本上,在使用日志记录器时,你几乎总是使用声明它的类的名称来命名日志记录器。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接