它仍然是值得log4j的库添加到Java 5的项目只是为了记录让我们说一些例外文件与一些不错的结余设置.或者标准的util.logging工具也可以完成这项工作吗?
你怎么看?
我会说你的util.logging可能对你描述的需求很好.
对于一个好的决策树,请看一下Log4j vs java.util.logging
问题一:您是否预计需要Log4j具有JUL所没有的任何聪明的处理程序,例如SMTPHandler,NTEventLogHandler或任何非常方便的FileHandler?
问题二:您是否认为自己想要频繁切换日志输出的格式?您需要一种简单灵活的方法吗?换句话说,你需要Log4j的PatternLayout吗?
问题三:在生产环境中编译和部署应用程序后,您是否预计能够更改应用程序中的复杂日志记录配置?你的配置是否听起来像是这样的:"来自这个类的严重消息通过电子邮件发送给支持人员;来自类子集的严重消息被记录到我们服务器上的syslog守护进程;来自另一个类子集的警告消息被记录到网络驱动器A上的文件;然后来自所有地方的所有消息都记录到网络驱动器B上的文件中"?你有没有看到自己每两天调整一次?
如果您对上述任何问题的回答都是肯定的,请使用Log4j.如果你对所有人都回答肯定的问题,JUL将绰绰有余,它已经方便地包含在SDK中了.
这就是说,现在几乎每个项目似乎都包括log4j,如果只是因为其他一些库使用它.
我建议您使用Simple Logging Facade for Java(SLF4J).它支持包含Log4J的不同提供程序,可用作Apache Commons Logging的替代品.
Log4j已经存在了很长时间,而且效果非常好.我没有科学研究支持它,但基于我在大量客户端看到的内容,我看到的日志框架很容易使用.它已经存在了很长时间,并没有被Next Big Logging Framework取代,后者说了些什么.
设置起来很简单,并且易于学习基本的appender(输出).有一个完整的主机appender可用,包括:
是ConsoleAppender
DailyRollingFileAppender
ExternallyRolledFileAppender
FileAppender
JDBCAppender
JMSAppender
NTEventLogAppender
RollingFileAppender进行
SMTPAppender
SocketAppender
SyslogAppender
TelnetAppender
WriterAppender
加上其他人.编写自己的appender并不困难.此外,每个appender都有很大的灵活性,允许您专门控制日志中的输出.
一个注意事项,当我使用除log4j之外的apache commons日志记录时,我遇到了一系列类加载器问题.它仅适用于一个特定的应用程序,但我发现单独使用log4j更简单,而不是在使用像commons日志记录这样的抽象层时提供灵活性.
有关详细信息,请参阅此文章 :
祝好运!
java.util.logging提供了一个全面的日志包,没有其他一些提供的超重行李..
log4j是一个更好的软件包整体,并没有java.util.logging包含的一些打嗝.我认为直接使用log4j比使用commons日志更容易.