4

我开始使用 SLF4J 进行日志记录,我首先想到的是以下代码

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

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

4

2 回答 2

8

这样做的结果是该记录器生成的每个记录语句都包含类的名称。你想这样做:

  1. 在输出中识别该日志消息的来源
  2. 有效地过滤这些消息。您可以按类和/或包含的包启用禁用消息。例如,您可能希望禁用所有 DAO 包消息(无论出于何种原因)

以上是日志记录中非常常见的模式。但是请注意,您不仅必须提供一个类,还可以提供自己的字符串,从而自己任意对消息进行分类。

于 2012-06-05T10:05:00.873 回答
2

这只是一个缩短器。请参阅LoggerFactory 的 javadoc以了解还有一个constuctorthatString参数。

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

于 2012-06-05T10:07:58.567 回答