logback配置载入顺序,配置文件命名优先级

it2023-01-06  64

1. logback配置类的初始化在:

org.slf4j.impl.StaticLoggerBinder类中的静态代码块中:

初始化调用了上下文初始化的自动配置方法:

自动配置中的关键代码调用 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类初始化配置


2.springboot的logback初始化:

在org.springframework.boot.logging.LoggingApplicationListener类中

其中关于配置文件的关键代码在调用initializeSystem方法中

 

 

3.动态修改配置:

可以通过:

LoggerContext lc = (LoggerContext) StaticLoggerBinder.getSingleton().getLoggerFactory();

获取到LoggerContext 上下文动态修改配置,例子(动态添加一个Appender):https://blog.csdn.net/huang007guo/article/details/109186837

最新回复(0)