39

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

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

  • Java 实用程序日志记录
  • 日志4j
  • slf4j
  • logback(由于 maven 提供的 hack 而被忽略)
  • 公共日志记录(由于 maven 提供的 hack 而被忽略)
  • 而且tomcat有自己的JULI适配器

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

现在我的问题是我应该针对什么进行编码,考虑到 log4j 2.0,SLF4J 是未来的正确选择。

看来我应该坚持使用旧的 log4j ( 1.2.x),因为它是最低公分母?

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

4

2 回答 2

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.

于 2012-08-23T15:46:01.350 回答
16

这是一个主观问题。

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

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

于 2012-08-23T15:00:22.757 回答