28

我已经阅读了有关可用于 Java 的日志记录框架的以下文章:http: //michaelandrews.typepad.com/the_technical_times/2011/04/java-logging-reconsidered.html

作者已经提到将 SLF4J 与 Logback 结合使用。这与直接使用 Logback 有什么不同。如果直接使用 Logback 而不是使用 SLF4J 会不会更好,因为 Logback 是建立在 SLF4J 之上的。

4

2 回答 2

44

SLF4J 为 Logback 增加了零开销,因为它只是由 Logback 实现的接口,没有任何额外的层。

你应该使用 SLF4J 仅仅是因为......

  1. 如果您需要,它使您能够从 Logback 切换
  2. 它不会花费您任何费用,即使进口量较小;)
  3. 如果您将代码发布到野外,其他人会喜欢您使用 SLF4J,而讨厌您直接使用特定的日志记录框架。

您可以直接访问 Logback 的唯一地方是在应用程序中手动(重新)配置日志记录时。偶尔会出现这种需求,但即使在这种情况下,使用 Logback 也将仅限于单个类甚至方法。

根据经验:库应始终使用日志抽象,而应用程序定义它们正在使用的日志,可选择直接访问它。

于 2011-05-01T10:37:25.827 回答
5

SLF4J 几乎没有增加开销,而且 Logback 有一个本地绑定。

如果您 100% 知道将来不需要切换到其他日志记录框架,请使用 logback native。但是 SLF4J 允许您进行一些抽象,您可以在眨眼间切换日志记录后端。

Logback 不是建立在 SLF4J 之上的。SLF4J 是一个日志抽象框架。它本身不做任何日志记录。它只是为日志记录提供统一的接口。

于 2011-04-29T07:59:01.327 回答