2009-01-23 71 views
3

Java的方式有很多框架/ API,这些API帮助你在你的应用程序的日志记录:查找在java日志框架现场

  1. Java的API已经java.util.logging包。
  2. Apache的Log4j。
  3. Apache的Commons Logging。
  4. SLF4J(伐木外立面)。
  5. jLo。 和许多更多...

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

任何人谁经历过一个以上的框架,可以分享他的经验?什么时候使用一个框架比应用架构更好?为什么我会比其他人更喜欢?

感谢

+0

确切的重复的http://stackoverflow.com/questions/354837/whats-up-with-logging-in-java – 2009-01-23 15:46:09

回答

-3

这个问题似乎等同于354837

简单的答案是,你会去通用日志如果你正在写可以投进,你必须在日志中,其他的选择之一,如果不是没有控制应用程序的库。我个人在所有情况下都使用CL,因为它很常见 - 我不需要记住框架之间的差异。

+0

我不是人downvoting你,但我对commons.logging有点过敏......我直到三年前才使用它,并同时将手指上的所有代码切换到SLF4J上。我仍然认为你的回答原油的downvote,特别是没有评论,但有些人是这样的:( – Huxi 2009-06-11 06:57:03

10

共享日志记录是source of strange classloading problems。如果可以的话,避免它。开发应用程序时我更喜欢log4j。如果您开发库/框架并且您不想执行日志库,请选择slf4j。

+1

而且我们不要忘记Commons Logging的官方绰号是“堵塞”。 – 2009-01-24 01:05:27

0

不论官位“的log4j”是标准的日志框架。

它运作良好,已经存在了一段时间。它是数千个应用程序和软件包使用最多的日志记录框架。它也是最有可能出现在开发者CV上的日志框架。

棒与log4j的有没有好的理由去尝试别的。

+0

如果你使用正面,你可以根据需要切换日志记录后端SLF4J与commons.logging相比更好,因为它支持参数化消息和MDC 我已经将commonklogs> 100kLines项目从过去改为SLF4J。简单易用,主要是搜索和删除...更换只需很少的手动更改,对于LOG4J也是如此 - 至少如果不使用NDC,因为SLF4J不支持该功能。 – Huxi 2009-06-03 15:36:19

4

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

3

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

此外,的logback是SLF4J API的本地实现,这意味着是您正在使用的logback,那么你实际上是使用SLF4J。因此,如果出于任何原因您希望切换回另一个日志框架,那么可以是log4j或j.u.l.你可以通过用另一个替换一个jar文件来完成。