我想了解slf4j的细节。我还不清楚slf4j如何被视为Logging facade? p>
外观的意图通常是 -
为子系统中的一组接口提供统一接口。 Facade定义了一个更高级别的界面,使子系统更易于使用。
在slf4j的情况下,它提供了一个通用的Logger
接口,但每个绑定项目如log4j, logback
等都需要提供它们的具体实现。
所以我理解adapter pattern
如何适应,但我仍然无法理解Facade Pattern
的使用方式。
答案 0 :(得分:3)
它不是语言级别的外观,而是应用程序级别的外观。当你编写你的应用程序(或者更重要的是一个库!)时,你必须以某种方式记录语句。如果将代码绑定到特定的日志实现(log4j,logback),将很难将其集成到使用另一个日志记录实现的另一段代码中,因为您必须配置两次并且可能无法共享相同的输出设备。
这对图书馆作者来说尤其重要。所以slf4j开始发挥作用:你登录到slf4j然后让使用库的用户通过适当的绑定和绑定配置提供实际的日志机制。
答案 1 :(得分:2)
SLF4J在严格意义上是不的立面。它仅为大多数日志记录框架共享的最常见日志记录方法提供API,允许用户在需要时相对轻松地切换到不同的API。