将 log4j 库添加到 Java5项目中只是为了记录 假设一个文件有一些异常,并且有一些很好的翻转设置。 或者标准 util.log 工具也可以完成这项工作?
你觉得怎么样?
我会说,您可能不介意使用 util.log 来满足您所描述的需求。
对于一个好的决策树,看看 Log4j vs java.util.log
第一个问题: 您是否预期需要 Log4j 拥有但 JUL 没有的任何智能处理程序,例如 SMTPHandler、 NTEventLogHandler 或任何非常方便的 FileHandler?
问题二: 您是否想要频繁地切换日志输出的格式?你是否需要一个简单、灵活的方法来做到这一点?换句话说,您需要 Log4j 的 PatternLayout 吗?
问题三: 在应用程序在生产环境中进行编译和部署之后,您是否预计一定会需要改变应用程序中的复杂日志配置?你的配置是不是听起来像这样: “来自这个类的严重消息通过电子邮件发送给支持人员; 来自一个类子集的严重消息被记录到我们服务器上的 syslog 守护进程; 来自另一个类子集的警告消息被记录到网络驱动器 A 上的一个文件; 然后所有来自任何地方的消息都被记录到网络驱动器 B 上的一个文件”?你觉得自己每隔几天就会调整一下吗?
如果以上任何一个问题的答案是肯定的,请使用 Log4j。如果您对所有这些问题都给出了明确的否定回答,那么 JUL 就足够了,而且它很方便地已经包含在 SDK 中。
也就是说,现在几乎每个项目都包括 log4j,即使只是因为其他库使用它。
我会使用 log4j。使用 log4j 的可能性一点也不过时!
我建议使用 Apache 公共日志记录作为日志记录接口。这样,您就可以随时切换日志记录实现,而不需要在您这一端进行任何代码更改。
我建议您使用 SLF4J(SLF4J)。它支持不同的提供程序,包括 Log4J,可以用来替代 ApacheCommons 日志记录。
Log4j 已经存在很长时间了,它工作得非常好。我没有任何科学研究来支持它,但是基于我在大量客户中看到的情况,我认为使用最多的是日志框架。它已经存在了很长一段时间,并没有被下一个大日志框架所取代,这说明了一些问题。
这是非常简单的设置,并很容易学习基本的附加(输出)。有一个完整的主机附加程序是可用的,包括:
还有其他人。编写自己的 appender 也不难。此外,每个附加程序都有很大的灵活性,允许您具体控制日志中的输出内容。
注意,除了 log4j 之外,在使用 apachecommons 日志记录时,我还遇到了一系列类加载器问题。虽然它只适用于一个特定的应用程序,但是我发现单独使用 log4j 比使用 commons log 这样的抽象层更加简单。
请参阅这篇文章 更多详情 :
祝你好运!
Log4j 总的来说是一个更好的包,并且没有 java.util.log 包含的一些小问题。我赞成直接使用 log4j 比使用 commons 日志记录更容易。
Log 提供了一个全面的日志包,没有其他一些程序提供的额外负担。