在StaticLoggerBinder的init方法中,通过autoConfig加载日志设置文件。
先去找体系情况变量设置的logback.configurationFile,如果没有,则去找logback-test.xml,如果照旧没有找到,就去找logback.xml。
末了依然没有找到,则初始化一个控制台ConsoleAppender,就像spring-boot项目初始化没有新增logback设置文件时的体现一样。
那么回到最开始的标题:
如果项目里同时绑定log4j和logback,slf4j会怎么样呢?他会选择其中一个作为实现方式,多余的则没有见效。
比方我们在spring的pom里面设置log4j的依靠,启动后,控制台会输出如下日志:
```
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/F:/mvn/repository/ch/qos/logback/logback-classic/1.2.11/logback-classic-1.2.11.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/F:/mvn/repository/org/slf4j/slf4j-log4j12/1.7.30/slf4j-log4j12-1.7.30.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [ch.qos.logback.classic.util.ContextSelectorStaticBinder]
```
如果以为写得不错,不妨点个赞,您的肯定是我继续分享的动力,后续还会继续研究其他标题。
原文链接:https://blog.csdn.net/qq_29558011/article/details/125882115