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

Ada*_*ent 39 java logging log4j logback slf4j

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

现在在我的应用程序中,我有接近4个可能更多的日志框架:

  • Java Util日志
  • log4j的
  • SLF4J
  • logback(由于maven提供hack而被忽略)
  • 公共记录(由于提供黑客的maven而被忽略)
  • 并且tomcat有自己的JULI适配器

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

现在我的问题是我应该编写的代码是SLF4J,对于未来的log4j 2.0来说是正确的选择.

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

更新:在进一步检查log4j 2.0时,看起来非常相似,配置与log4j 1.2不向后兼容.看起来像logback是最好的选择.

Cek*_*eki 34

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

据我了解,尽管它的名称,log4j 2.0与log4j 1.x非常不同.就用户API而言,log4j 2.0与log4j 1.x很大程度上不兼容.Log4j 2.0为log4j 1.x提供了适应层,目前时间(2012-08)是undocumented.

  • 我想我希望大规模的记录统一(GUL),但我想像物理学(GUT)不会很快发生:).顺便说一下感谢log4j(原创).我对log4j 2.0(over logback)的兴趣不是将配置切换到新的logback样式(恕我直言,它更容易重构为SLF4J),而不是更改10个左右项目的配置. (4认同)
  • 你熟悉log4j.properties翻译吗?它可以极大地帮助将log4j.properties迁移到logback.xml.试一试http://logback.qos.ch/translator/ (2认同)
  • Log4J2网站报告说有一个适用于SLF4J的适配器,因此如果您将代码编写到SLF4J,您可以随时切换到Log4J,Log4J2和Logback.这是桥梁:http://logging.apache.org/log4j/2.x/log4j-slf4j-impl/ (2认同)

sli*_*lim 16

这是一个主观问题.

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

您可能正在使用许多可能都使用不同日志记录API的组件.能够通过这些API将输出合并到单个输出路径中是件好事.