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