对于一个Java 5项目,是否还值得添加log4j库来记录例如一些异常到文件中并设置一些良好的滚动设置呢?还是标准的util.logging工具也能完成这项工作?
您认为呢?
对于一个Java 5项目,是否还值得添加log4j库来记录例如一些异常到文件中并设置一些良好的滚动设置呢?还是标准的util.logging工具也能完成这项工作?
您认为呢?
根据您所述的需求,util.logging 对您应该已经足够了。
想要一个好的决策树,请查看Log4j vs java.util.logging
问题一: 您是否预计需要 Log4j 拥有但 JUL 没有的任何聪明的处理程序,例如 SMTPHandler、NTEventLogHandler 或任何非常方便的 FileHandlers?
问题二: 您是否认为自己需要频繁切换日志输出格式?您是否需要一种简单、灵活的方式来实现这一点?换句话说,您是否需要 Log4j 的 PatternLayout?
问题三: 您是否预计在编译和部署到生产环境后,需要更改应用程序中的复杂日志记录配置的能力?您的配置是否与“此类的严重消息通过电子邮件发送给支持人员;来自另一子集类的严重消息被记录到我们服务器上的 syslog 守护进程中;来自另一子集类的警告消息被记录到网络驱动器 A 上的文件中;然后来自任何地方的所有消息都被记录到网络驱动器 B 上的文件中”相似?而且您是否看到自己每隔几天就要微调一下配置?
如果您对上述任何问题的回答是肯定的,那么选择 Log4j。如果您对所有问题都是否定的,JUL 将足以胜任,并且方便地已经包含在 SDK 中。
话虽这么说,几乎每个项目现在似乎都会包括 log4j,即使只是因为其他库使用它。
Log4j vs java.util.logging
的链接已经失效。 - Prachi我建议您使用Java简单日志门面(SLF4J)。它支持包括Log4J在内的不同提供者,并可用作Apache Commons Logging的替代。
Log4j已经存在很长时间了,而且工作得非常好。虽然我没有科学研究来支持它,但根据我在大量客户处看到的情况,它很容易成为使用最多的日志框架,而其他框架却没有替代它。它已经存在很长时间,也没有被下一个大型日志框架所取代,这说明了一些问题。
设置起来非常简单,并且可以轻松学习基本的附加程序(输出)。有许多可用的附加程序,包括:
此外还有其他的。编写自己的appender也不难。此外,每个appender都具有很大的灵活性,允许您控制日志中特定的输出内容。
需要注意的是,在我同时使用apache commons logging和log4j时,我遇到了一系列的ClassLoader问题。虽然这只发生在一个特定的应用程序中,但我发现仅使用log4j比使用诸如commons logging之类的抽象层更简单。
有关更多详细信息,请参见此文章:
祝好运!
java.util.logging提供了一套全面的日志记录包,没有其他日志记录包提供的多余组件。
log4j是一个更好的整体包,不像java.util.logging那样容易出现问题。我同意直接使用log4j比使用commons logging更容易。
我会选择log4j。log4j的可能性并不过时!