Java 海关伐木的动机
Motivation for Java Logging Customs
我一直在阅读有关登录的内容 Java,SLF4J 似乎是正确的选择。
我不明白为什么日志记录对象是 obtained/initialized 的样子。
为什么
private static final Logger logger = LoggerFactory.getLogger(App.class);
需要每个 class?
为什么不为所有 classes/class-instances 使用一些静态记录器实例呢? (如果我不为每个 class 创建新实例会怎样?)
为什么我需要将 class 正在使用记录器的 class 对象传递给工厂?无论如何,记录器在运行时不会拥有所有这些详细信息吗? (如果我传递一些不同的 class 对象会怎样?)
- 您实际上可以创建一个可以在任何地方使用的单例记录器。但是我们通常会为每个 class 创建一个记录器,只是为了过滤日志。
- 这只是为了命名您创建的记录器实例,实际上您可以传递任何您想要的字符串并且不会发生任何事情
前任:
Logger logger = LoggerFactory.getLogger("any name");
我一直在阅读有关登录的内容 Java,SLF4J 似乎是正确的选择。
我不明白为什么日志记录对象是 obtained/initialized 的样子。
为什么
private static final Logger logger = LoggerFactory.getLogger(App.class);
需要每个 class?
为什么不为所有 classes/class-instances 使用一些静态记录器实例呢? (如果我不为每个 class 创建新实例会怎样?)
为什么我需要将 class 正在使用记录器的 class 对象传递给工厂?无论如何,记录器在运行时不会拥有所有这些详细信息吗? (如果我传递一些不同的 class 对象会怎样?)
- 您实际上可以创建一个可以在任何地方使用的单例记录器。但是我们通常会为每个 class 创建一个记录器,只是为了过滤日志。
- 这只是为了命名您创建的记录器实例,实际上您可以传递任何您想要的字符串并且不会发生任何事情
前任:
Logger logger = LoggerFactory.getLogger("any name");