【发布时间】:2015-04-23 09:00:46
【问题描述】:
在我的项目中,我使用 slf4j 和 logback 作为后端日志框架。但是有很多依赖项使用 log4j 作为日志框架。所以事实证明 slf4j 有多个绑定。我该如何处理呢?如果我排除了不需要的 slf4j-log4j 依赖项,框架或库本身是否会正确处理日志记录?
【问题讨论】:
在我的项目中,我使用 slf4j 和 logback 作为后端日志框架。但是有很多依赖项使用 log4j 作为日志框架。所以事实证明 slf4j 有多个绑定。我该如何处理呢?如果我排除了不需要的 slf4j-log4j 依赖项,框架或库本身是否会正确处理日志记录?
【问题讨论】:
您可以安全地排除其他绑定。 slf4j 会将其他库与 logback 绑定。
【讨论】:
只要路径上只有一个绑定,SLF4J 就会确保针对它发生的所有日志记录都将在该日志记录实现中结束。
如果您的依赖项带来不同的绑定或日志实现,它会变得更复杂一些。但是 SLF4J 为这种情况提供了桥梁:
http://www.slf4j.org/legacy.html
因此,首选方法是为 SLF4J 和 logback 建立依赖关系,并在为其添加桥接器时排除所有其他日志框架。
【讨论】: