初始化调用了上下文初始化的自动配置方法:
自动配置中的关键代码调用 findURLOfDefaultConfigurationFile方法去查找配置文件:
会通过这四个地方查找logback的配置文件
findConfigFileURLFromSystemProperties函数查找的是: final public static String CONFIG_FILE_PROPERTY = "logback.configurationFile";所以最后总结的文件加载顺序是(前一个有就不会去查找下一个):
final public static String CONFIG_FILE_PROPERTY = "logback.configurationFile"; final public static String GROOVY_AUTOCONFIG_FILE = "logback.groovy"; final public static String TEST_AUTOCONFIG_FILE = "logback-test.xml"; final public static String AUTOCONFIG_FILE = "logback.xml";如果配置文件都不存在会走到
ch.qos.logback.classic.BasicConfigurator类初始化配置在org.springframework.boot.logging.LoggingApplicationListener类中
其中关于配置文件的关键代码在调用initializeSystem方法中
可以通过:
LoggerContext lc = (LoggerContext) StaticLoggerBinder.getSingleton().getLoggerFactory();获取到LoggerContext 上下文动态修改配置,例子(动态添加一个Appender):https://blog.csdn.net/huang007guo/article/details/109186837