2011-04-29 94 views

回答

43

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

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

  1. 它可以让您的logback从切换的路程,如果你曾经需要
  2. 它不会花费你任何东西,即使是进口小;)
  3. 其他人会喜欢你使用SLF4J,并且如果你将代码放到野外,直​​接使用特定的日志记录框架会让你憎恨。

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

作为一个经验法则:库应该总是使用日志抽象,而应用程序定义他们正在使用的日志记录,可以直接访问它。

+3

您可能希望在{}位置添加注释,因为它们在我看来是slf4j中的杀手级设施。 – 2011-05-02 11:06:49

+3

但他只是问他是否应该使用SLF4J或Logback而没有抽象。都支持{}。 – Huxi 2011-06-01 09:17:01

+2

我的不好。我们可以同意Ceki希望使用slf4j吗? – 2011-06-01 13:50:41

5

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

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

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