考虑一下https://www.slf4j.org/manual.html for Java。作为背景,它通过简单的facade模式提供API,通过将所需的绑定添加到类路径,在运行时确定底层日志后端。它可能是标准的java.util.logging、log4j、logback或tinylog。
客户端应用程序与日志后端的巧妙分离减少了特定应用程序与任何特定日志框架之间的耦合。这可以使新实现的客户端与已经选择日志后端的其他项目的现有代码更容易集成。
因此,考虑到日志API SLF4J,对于编译来说,您只需要slf4j-api,并且您应该避免将任何特定的绑定,比如slf4jlog4j12作为编译依赖项。
因此,slf4j-log4j12是一个很好的选择,可以成为运行时范围内的依赖项,而不是编译依赖项,因为这将允许您在运行时切换slf4j绑定,而不必重新编译应用程序。
问:在Maven项目的运行时,在何处设置日志框架绑定之间的切换?有什么例子吗?
发布于 2017-01-19 17:56:53
免责声明:我是SLF4J的作者
尽管文档讨论了如何在运行时更改日志后端,但SLF4J允许在build time而不是在运行时切换日志后端。
https://stackoverflow.com/questions/41725475
复制相似问题