Java登录海关的动机

时间:2015-09-07 10:57:54

标签: java design-patterns logging coding-style slf4j

我一直在阅读使用Java登录,看起来SLF4J似乎还有很长的路要走。

我不明白为什么日志对象是按原样获取/初始化的原因。

为什么

private static final Logger logger = LoggerFactory.getLogger(App.class);

需要在每个班级?

  1. 为什么不为所有类/类实例提供一些静态记录器实例? (如果我不为每个班级创建新实例,会发生什么?)

  2. 为什么我需要将记录器所使用的类的类对象传递给工厂?无论如何,记录器在运行期间是否拥有所有这些细节? (如果我传递一些不同的类对象会发生什么?)

1 个答案:

答案 0 :(得分:1)

  1. 您实际上可以创建一个可以在任何地方使用的单例记录器。但我们通常只为每个类创建一个记录器来过滤日志。
  2. 这只是为了命名你创建的记录器实例,实际上你可以传递你想要的任何字符串,什么都不会发生 例如: Logger logger = LoggerFactory.getLogger("any name");