Java Logging vs Log4J [已关闭]

2022-08-31 07:39:13

是否仍然值得将log4j库添加到Java 5项目中,只是为了记录一些具有良好滚动更新设置的文件的一些异常。或者标准的util.log工具也会完成这项工作吗?

你觉得怎么样?


答案 1

我想说的是,对于您描述的需求,您可能对util.log很好。

对于一个好的决策树,看看Log4j与java.util.logging。

问题一:您是否预计需要Log4j拥有的任何聪明的处理程序,例如SMTPHandler,NTEventLogHandler或任何非常方便的文件处理程序?

问题二:您是否认为自己想要经常切换日志记录输出的格式?您是否需要一种简单、灵活的方法来执行此操作?换句话说,你需要Log4j的PatternLayout吗?

问题三:在生产环境中编译和部署应用程序后,您是否预计需要能够更改应用程序中的复杂日志记录配置?您的配置听起来是否像,“来自此类的严重消息将通过电子邮件发送给支持人员;来自类子集的严重消息被记录到我们服务器上的系统日志 deamon 中;来自另一个类子集的警告消息将记录到网络驱动器 A 上的文件中;然后来自任何地方的所有消息都记录到网络驱动器B上的文件中“?你认为自己每隔几天就会调整一次吗?

如果您对上述任何问题的回答是肯定的,请使用Log4j。如果你对所有它们都回答一个明确的否定,那么 JUL 将绰绰有余,并且它已经方便地包含在 SDK 中。

也就是说,现在几乎每个项目似乎都包括log4j,如果只是因为其他一些库使用它。


答案 2

我建议您使用 Java 的简单日志记录外观 (SLF4J)。它支持包含Log4J的不同提供程序,可以用作Apache Commons Logging的替代品。


推荐