Log4j 2.0和SLF4J以及Java日志框架永无止境的未来

所以我今天刚刚发现Log4J 2.0现在正在积极开发中,有一个alpha版本,据说取代了logback。

现在在我的应用程序,我有接近4或许更多的日志框架:

  • Java Util日志logging
  • log4j的
  • SLF4J
  • logback(忽略感谢提供黑客的maven)
  • 公共日志logging(忽略感谢提供黑客的maven)
  • 而tomcat有它自己的JULI适配器

我一直在使用log4j(1.2.x),坦率地说,我只是不需要更新的人的function ,但我最近试图切换到SLF4J,主要是因为我不想重写我复杂的log4jconfiguration文件到一个新的格式 (logback)。

现在我的问题是,我应该针对的是SLF4J是log4j 2.0未来的正确select。

似乎我应该坚持使用旧的log4j( 1.2.x ),因为它是最低的共同点?

更新:在进一步检查log4j 2.0而非常类似的情况下,它的configuration与log4j 1.2不兼容。 看起来像logback是最好的select。

这是一个主观的问题。

我build议使用slf4j,因为它可以使用log4j作为后端,如果这是你所需要的。

您可能正在使用许多可能使用不同日志loggingAPI的组件。 能够通过这些API将输出整合到单个输出path是一件好事。

免责声明 :我是log4j,slf4j和logback项目的创始人,但与log4j 2.0无关。

据我了解,尽pipe它的名字,log4j 2.0是非常不同于log4j 1.x. 就用户API而言,log4j 2.0在很大程度上与log4j 1.x不兼容。 Log4j 2.0为log4j 1.x提供了一个适配层,目前为止(2012-08) undocumented