7

我正在开发一个必须使用日志记录机制的 java 应用程序。现在我很困惑是选择 java 库记录器还是选择 Log4j 记录器。

所以我想知道什么时候可以使用 java logger,什么时候可以使用 log4j logger。

4

5 回答 5

10

我建议您使用SLF4J来将您的应用程序与特定的日志记录框架分离。它具有适用于各种流行日志框架的适配器,例如 Jakarta Logging、JDK1.4 日志、log4j 等。使其成为满足日志需求的良好抽象。

于 2010-02-13T11:13:37.293 回答
3

Logger 类在早期不是 jdk 的一部分,因此出现了几个库实现。Log4j 库具有最全面的日志记录实用程序之一(格式化程序、附加程序等)。但是,对于大多数开发人员来说,这将是一种矫枉过正,简单的 java.util.Logger 就足够了。

我个人在我的记录器实现上使用了一个自定义包装器。这使我能够定义自定义调用来执行功能日志记录/审计。

于 2010-02-13T11:03:09.847 回答
3

Apache Commoms Logging项目和SLF4J,它们都抽象了底层的日志库。

在实践中,我倾向于使用 Log4J 而不是内置的日志记录类。主要是因为 Log4J 可以在应用服务器中为每个 web-app 配置,而 JDK 日志记录是在每个 JVM 中配置的。

于 2010-02-13T11:19:15.333 回答
3

我目前推荐的方法是使用 SLF4J 作为日志 API。然后,您可以在发现它们时根据需要选择日志框架。

我写了一篇关于我认为开始使用 SLF4J 的最佳实践和当前放置的简单“登录到 System.out”的文章。 http://runjva.appspot.com/logging101/index.html

希望它是有帮助的。

于 2010-02-13T11:25:43.100 回答
2

我发现 Log4j 在调整日志配置时更加灵活,而无需在生产环境中重新编译代码。

于 2010-02-13T11:17:14.820 回答