我已经阅读了以下有关Java可用日志框架的文章: http://michaelandrews.typepad.com/the_technical_times/2011/04/java-logging-reconsidered.html
作者提到使用SLF4J和Logback。这与直接使用Logback有什么不同。如果直接使用Logback而不是使用SLF4J,那会不会更好,因为Logback是在SLF4J之上构建的。
答案 0 :(得分:44)
SLF4J为Logback增加了零开销,因为它只是Logback实现的接口而没有任何附加层。
你应该使用SLF4J,因为......
您唯一可以直接访问Logback的地方是在应用程序中手动配置日志(重新)。偶尔会出现这种情况,但即使在这种情况下,使用Logback也只能使用单个类甚至方法。
根据经验:库应该始终使用日志记录抽象,而应用程序定义它们正在使用的日志记录,可以选择直接访问它。
答案 1 :(得分:5)
SLF4J几乎没有增加任何开销,Logback有一个本机绑定。
如果您100%知道将来不需要切换到其他日志框架,请使用logback native。但是SLF4J允许你进行一些抽象,你可以瞬间切换日志后端。
Logback不是在SLF4J之上构建的。 SLF4J是一个用于日志记录的抽象框架。它本身不做任何记录。它只是提供统一的日志记录接口。