向Simple Logging Facade (SLF4J)想一想Java。作为后台,它通过简单的 Facade模式提供API,其方式是在运行时通过向类路径添加所需的绑定来确定基础日志后端。它可能是标准的 java.util.logging , log4j , logback 或 tinylog 。
客户端应用程序与日志记录后端的完美分离减少了特定应用程序与任何特定日志记录框架之间的耦合。这可以更容易地将新实现的客户端与已经选择记录后端的其他项目的现有代码集成。
因此,考虑到日志API SLF4J ,对于编译,您只需要 slf4j-api ,您应该避免包含任何特定的绑定,例如 slf4j-log4j12 作为编译依赖项。
因此, slf4j-log4j12 是运行时作用域依赖项而不是 compile 依赖项的良好候选者,因为这将允许您可以在运行时在 slf4j绑定之间切换,而无需重新编译应用程序。
答案 0 :(得分:4)
免责声明:我是SLF4J的作者
尽管文档讨论了在运行时更改日志记录后端,但SLF4J允许在构建时时切换日志记录后端,但不能在运行时切换。