【发布时间】:2011-01-16 11:11:41
【问题描述】:
我正在开发一个必须使用日志记录机制的 Java 应用程序。现在我很困惑是选择 java 库记录器还是选择 Log4j 记录器。
所以我想知道什么时候可以使用 java logger 以及什么时候可以使用 log4j 记录器。
【问题讨论】:
标签: java logging log4j java.util.logging
我正在开发一个必须使用日志记录机制的 Java 应用程序。现在我很困惑是选择 java 库记录器还是选择 Log4j 记录器。
所以我想知道什么时候可以使用 java logger 以及什么时候可以使用 log4j 记录器。
【问题讨论】:
标签: java logging log4j java.util.logging
Logger 类在早期并不是 jdk 的一部分,因此出现了几个库实现。 Log4j 库具有最全面的日志记录实用程序之一(格式化程序、附加程序等)。但是,对于大多数开发人员来说,这将是一种矫枉过正,简单的 java.util.Logger 就足够了。
我个人在我的记录器实现上使用了一个自定义包装器。这使我能够定义自定义调用来执行功能日志记录/审计。
【讨论】:
java.util.logging 更可取,这只是简单的讨厌
我建议您使用SLF4J,而不是将您的应用程序与特定的日志记录框架分离。它具有适用于各种流行日志框架的适配器,例如 Jakarta Logging、JDK1.4 日志、log4j 等。使其成为满足日志需求的良好抽象。
【讨论】:
我发现 Log4j 在调整日志配置时更加灵活,无需在生产环境中重新编译代码。
【讨论】:
有Apache Commoms Logging 项目和SLF4J,它们都抽象了底层的日志库。
在实践中,我倾向于使用 Log4J 而不是内置的日志记录类。主要是因为 Log4J 可以在应用服务器中为每个 web-app 配置,而 JDK 日志记录是每个 JVM 配置。
【讨论】:
我目前推荐的方法是使用 SLF4J 作为日志 API。然后,您可以在发现它们时根据需要选择日志框架。
我写了一篇关于我认为开始使用 SLF4J 的最佳实践和一个简单的“登录到 System.out”的文章,目前放置在。 http://runjva.appspot.com/logging101/index.html
希望对您有所帮助。
【讨论】: