Answers:
我想说您可能对util.logging满足您所描述的需求。
对于一个好的决策树,看看Log4j vs java.util.logging
问题一:您是否期望Log4j具有JUL所不具备的任何聪明处理程序,例如SMTPHandler,NTEventLogHandler或任何非常方便的FileHandler?
问题二:您是否看到自己想要频繁切换日志输出的格式?您会需要一种简单,灵活的方法吗?换句话说,您是否需要Log4j的PatternLayout?
问题三:在将应用程序编译并部署到生产环境中之后,您是否肯定需要更改应用程序中复杂日志记录配置的功能?您的配置听起来是否像是“来自该类的严重消息通过电子邮件发送给支持人员;来自一类类的严重消息被记录到我们服务器上的系统日志守护进程中;来自另一类类的警告消息被记录了下来到网络驱动器A上的文件;然后来自任何地方的所有消息都记录到网络驱动器B上的文件中?”?而且您是否看到自己每两天进行一次调整?
如果您可以对上述任何一个问题回答“是”,请使用Log4j。如果您对所有人都回答肯定的话,JUL将绰绰有余,并且已经很方便地包含在SDK中。
就是说,这些天几乎所有项目都似乎已经结束,包括log4j,仅仅是因为其他一些库正在使用它。
Log4j已经存在很长时间了,并且运行良好。我没有科学研究来支持它,但是基于我在大量客户端上所看到的,很容易看到日志框架比我使用的日志框架更多。它已经存在了很长一段时间,并没有被Next Big Logging Framework所取代,后者有所说明。
设置起来非常简单,而且学习基本的附加器(输出)也很简单。有一个完整的主机附加程序可用,包括:
再加上其他。编写自己的附加程序也不难。此外,每个附加程序都具有很大的灵活性,可让您专门控制日志中的输出。
需要注意的是,除了使用log4j之外,当我使用apache commons日志记录时,我还遇到了一系列的类加载器问题。它仅用于一个特定的应用程序,但是我发现单独使用log4j较简单,而不是像使用commons日志记录那样使用抽象层时具有灵活性。
请参阅本文以获取 更多详细信息:
祝好运!
java.util.logging提供了一个全面的日志记录程序包,而没有其他一些程序包带来的额外负担。
log4j总体上来说是一个更好的软件包,并且没有java.util.logging包含的一些小问题。我想直接使用log4j比使用commons日志记录更容易。
我建议使用Apache Commmons Logging作为您的日志接口。这样,您可以灵活随时随地切换日志记录实现,而无需更改任何代码。