work hard work smart

专注于Java后端开发。 不断总结,举一反三。
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Java 日志寻址介绍

Posted on 2020-03-09 19:54  work hard work smart  阅读(213)  评论(0编辑  收藏  举报

一般使用logger的方式为

   private Logger logger = LoggerFactory.getLogger(MybatisStartTest.class);

  

进入getLogger

    public static Logger getLogger(Class<?> clazz) {
        Logger logger = getLogger(clazz.getName());
        if(DETECT_LOGGER_NAME_MISMATCH) {
            Class<?> autoComputedCallingClass = Util.getCallingClass();
            if(autoComputedCallingClass != null && nonMatchingClasses(clazz, autoComputedCallingClass)) {
                Util.report(String.format("Detected logger name mismatch. Given name: \"%s\"; computed name: \"%s\".", new Object[]{logger.getName(), autoComputedCallingClass.getName()}));
                Util.report("See http://www.slf4j.org/codes.html#loggerNameMismatch for an explanation");
            }
        }

        return logger;
    }

 

1、进入getLogger(clazz.getName());

    public static Logger getLogger(String name) {
        ILoggerFactory iLoggerFactory = getILoggerFactory();
        return iLoggerFactory.getLogger(name);
    }

  

2、进入getILoggerFactory

 

3、进入performInitialization方法

 

4、   进入bind方法

    7. 如果存在多个日志框架打印提示及选择

 

5、然后进入findPossibleStaticLoggerBinderPathSet方法。获得StaticLoggerBinder所在jar包路径

 

6、将路径增加到staticLoggerBinderPathSet集合中。

 

这个就是log的寻址过程。

 

8、StaticLoggerBinder 这个类存在于logback中,通过这个类获得日志工厂再得实现。