Log4j,commons-logging,JDK-Logging和SLF4J如何相互关联?

Zee*_*mee 6 java logging

它们是替代品,依赖关系,API还是彼此的实现?他们为什么存在?

Ste*_*veD 5

啊,用Java记录框架.您的问题混合了两种不同类型的库:

  • log4j和JDK日志记录是用于处理日志记录的库
  • Commons Logging和SLF4J正在记录外观:你仍然需要一个真正的日志记录实现(比如log4j)

如果您正在编写将在其他人的系统中使用的库,那么您应该使用日志记录外观,因为您不知道他们将使用哪个日志框架.在这种情况下使用SLF4J(Commons Logging较旧并且存在一些类加载器问题).

如果您控制整个应用程序并可以指定要使用的日志框架,则可以自由选择自己的首选项.我的首选解决方案是(按优先顺序):

  • 的logback
  • log4j的
  • JDK日志记录(在我看来,SUN的"未在这里发明"的案例)