使用java.util.logging和Log4j Loggers的区别

时间:2010-02-13 10:56:06

标签: java logging log4j java.util.logging

我正在开发一个java应用程序,我必须使用日志记录机制。现在我很难选择java库记录器或者去Log4j记录器。

所以我想知道什么时候可以使用java logger 当我可以去log4j记录器时。

5 个答案:

答案 0 :(得分:10)

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

答案 1 :(得分:3)

Logger类之前并不是jdk的一部分,因此涌现出了几个库实现。 Log4j库有一套最全面的日志实用程序(Formatters,Appenders等)。但是,对于大多数开发人员来说,这将是一种矫枉过正,简单的java.util.Logger就足够了。

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

答案 2 :(得分:3)

Apache Commoms Logging项目和SLF4J,其中任何一个都抽象了基础日志库。

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

答案 3 :(得分:3)

我目前推荐的方法是使用SLF4J作为日志记录API。然后,您可以根据自己的需要选择日志框架。

我做了一篇关于我认为是开始使用SLF4J的最佳实践以及一个简单的“登录到System.out”的文章。 http://runjva.appspot.com/logging101/index.html

希望它有用。

答案 4 :(得分:2)

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