3

Java 有很多框架/API 可以帮助您在应用程序中进行日志记录:

  1. Java API 有 java.util.logging 包。
  2. Apache 的 Log4j。
  3. Apache 的公共日志记录。
  4. SLF4J(记录外观)。
  5. 杰洛。还有更多...

我一直使用 log4j 库,我发现它大部分时间都足够了,并且在我需要更多控制时可以扩展。

任何有多个框架经验的人都可以分享他的经验吗?从应用程序架构的角度来看,什么时候使用一个框架优于另一个框架?为什么我更喜欢一个而不是另一个?

谢谢

4

5 回答 5

10

Commons Logging 是奇怪的类加载问题的根源。如果可以的话,避免它。在开发应用程序时我更喜欢 log4j。如果您开发库/框架并且不想强制执行日志记录库,请选择 slf4j。

于 2009-01-23T14:39:17.003 回答
4

如果它的新代码我将从 slf4j 开始,因为它提供了在底层日志 API 之间切换的最简单方法,只需在应用程序的 classparth 中包含所需的 slf-[logging_api].jar。例如 - 如果您从 log4j 开始,您仍然必须在 log4j.xml 中配置一个 Conole 记录器才能查看您的日志输出,而使用 slf4j 您只需包含 slf4j-simple.jar。

于 2009-01-23T15:45:26.213 回答
3

Logback 是 log4j 的重写。如果你喜欢 log4j,你应该更喜欢 logback。

此外,logback 是 SLF4J API 的本机实现,这意味着您使用的是 logback,那么您实际上是在使用 SLF4J。因此,如果出于任何原因您希望切换回另一个日志框架,无论是 log4j 还是 jul,您都可以通过将一个 jar 文件替换为另一个来实现。

于 2009-05-29T09:29:22.620 回答
0

无论官方立场是什么,“log4j”都是标准的日志框架。

它运作良好并且已经存在了一段时间。它是数千个应用程序和包使用的部署最多的日志框架。它也是最有可能出现在开发人员简历中的日志框架。

坚持使用 log4j,没有充分的理由尝试其他任何东西。

于 2009-01-23T14:57:22.113 回答
-3

这个问题似乎与354837相同。

简单的答案是,如果您正在编写一个库,该库可能会被放入您无法控制日志记录的应用程序中,那么您会选择 Commons Logging,如果不是,则为其他选择之一。我个人在所有情况下都使用 CL,只是因为它很常见——我不需要记住框架之间的差异。

于 2009-01-23T14:34:27.120 回答