当你使用slf4j并希望将它与log4j一起使用时,你只需将log4j jar文件放在类路径中,并且没有任何配置slf4j理解它的impl。 slf4j如何做到这一点?这里的机制是什么?
答案 0 :(得分:0)
首先让我澄清几点:
这最后一点非常重要。在项目中,您可以使用许多第三方API,每个API都使用一种流行的日志API(Log4J,Commons,JDK等)。这很痛苦,因为您必须单独配置每个。
解决方案是使用SLF4J,它为遗留日志API提供重新实现,后者委托给SLF4J。因此,当您使用的第三方API进行日志记录调用时,该调用将通过特定日志API的SLF4J实现委派到SLF4J。
所以正在使用的机制是委托,结合Java本身使用它从类路径加载的第一个类(在这种情况下是特定日志API的重新实现)这一事实。因此,只要重新实现中的Logging类与调用调用代码的定义相匹配,调用代码就更聪明了。