【问题标题】:LoggerFactory vs LoggerLoggerFactory 与 Logger
【发布时间】:2016-06-10 09:36:20
【问题描述】:

我有一个问题我还没有找到答案。那么这两行有什么区别呢?

private static final Logger LOGGER = LoggerFactory.getLogger(MyClass.class);

private static final Logger LOGGER = Logger.getLogger(MyClass.class);

应该使用哪一个,为什么?谢谢。

【问题讨论】:

    标签: logging log4j slf4j


    【解决方案1】:

    您已经用 标记了这个问题,所以我假设您的项目设置为使用SLF4J 并且它使用它的log4j 绑定。

    如果您在课堂上使用 SLF4J 绑定(顶部有 import org.slf4j.Logger;),那么您需要使用 LoggerFactory.getLogger(您还需要使用 import org.slf4j.LoggerFactory;)。

    如果您直接使用 log4j(在班级顶部有 import org.apache.log4j.Logger;),请使用 Logger.getLogger

    通常,拥有 SLF4J 的目的是成为您用于所有日志记录命令的标准,并让它担心连接到实际的日志记录框架。因此,如果您的项目使用 SLF4J,请使用 SLF4J 绑定。或者,如果你只是想直接使用 log4j,那么你可以直接使用它,也许你甚至不需要使用 SLF4J 库。 (我自己是 SLF4J 的忠实粉丝,所以我建议将它用于一切,但这只是我的意见。)

    我猜你的开发环境可能会自动选择其中一个来导入,你甚至可能在不同的类中导入了不同的Loggers,而你甚至没有意识到它们使用的不是同一个。

    【讨论】:

      猜你喜欢
      • 2019-04-23
      • 2019-06-19
      • 2023-03-12
      • 2018-11-21
      • 1970-01-01
      • 2019-05-09
      • 1970-01-01
      • 2016-07-23
      • 1970-01-01
      相关资源
      最近更新 更多