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

2020-11-11 00:00:00 优先级 配置文件 顺序

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

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

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

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

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

自动配置中的关键代码调用 findURLOfDefaultConfigurationFile方法去查找配置文件:

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

会通过这四个地方查找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类初始化配置

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

2.springboot的logback初始化:

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

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

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

 

 

3.动态修改配置:

可以通过:

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

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

    原文作者:hank009
    原文地址: https://blog.csdn.net/huang007guo/article/details/109177007
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。

相关文章