1)https://www.cnblogs.com/youzhibing/p/6849843.html

编译期间,完成slf4j的绑定已经logback配置文件的加载。slf4j会在classpath中寻找org/slf4j/impl/StaticLoggerBinder.class(会在具体的日志框架如log4j、logback等中存在),找到并完成绑定;同时,logback也会在classpath中寻找配置文件,先找logback.configurationFile、没有则找logback.groovy,若logback.groovy也没有,则找logback-test.xml,若logback-test.xml还是没有,则找logback.xml,若连logback.xml也没有,那么说明没有配置logback的配置文件,那么logback则会启用默认的配置(日志信息只会打印在控制台)。

  slf4j只能绑定某一个特定的日志框架,若没有绑定,则会有如下警告,说明没有找到合适的日志框架

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.

  若找到多个日志框架,slf4j会发出警告,并在运行时抛出NoClassDefFoundError异常

2)https://blog.csdn.net/zhuyucheng123/article/details/51803852

api:

  • commons-logging
  • log4j1
  • jdk-logging
  • slf4j

impl:

  • log4j1
  • log4j2
  • jdk-logging
  • logback

文章中有大量实例

3)演化:

https://zhuanlan.zhihu.com/p/24272450

4)https://blog.csdn.net/u011372108/article/details/83824274

这个链接解决了slf4j-log4j12与logback的冲突,因为同时使用了log4j与logback实现日志

转载于:https://www.cnblogs.com/silyvin/p/10433001.html

从源码来理解slf4j的绑定,以及logback对配置文件的加载相关推荐

  1. java重写源码类不生效(自己重写的类没有被jvm加载)

    背景 很多情况下我们需要调试源码或者修改源码以满足我们的开发需求 我们会项目的java目录下创建一个类,目录和类名都与源码的一致,然后将源码中的代码全部拷贝到我们自己创建的类中,再加入一些我们自己的逻 ...

  2. 《Spring源码深度解析 郝佳 第2版》bean的加载、循环依赖的解决

    往期博客: <Spring源码深度解析 郝佳 第2版>容器的基本实现与XML文件的加载 <Spring源码深度解析 郝佳 第2版>XML标签的解析 往期博客完成了xml文件加载 ...

  3. Alian解读SpringBoot 2.6.0 源码(一):SpringApplication对象创建(Spring工厂加载机制)

    目录 一.背景 二.SpringApplication实例化 2.1.实例化方法入口 2.2.推断应用程序类型 2.3.Spring工厂加载机制 2.3.1.获取Spring工厂实例(重要) 2.3. ...

  4. 从源码角度理解ConstraintLayout#onMeasure对child的measure调用次数

    熟悉绘制流程的都知道,ViewGroup可以决定child的绘制时机以及调用次数. 今天我们简单看下较为复杂的ConstraintLayout,看一下它对子View的onMeasure调用次数具体是多 ...

  5. android 点击事件消费,Android View事件分发和消费源码简单理解

    Android View事件分发和消费源码简单理解 前言: 开发过程中觉得View事件这块是特别烧脑的,看了好久,才自认为看明白.中间上网查了下singwhatiwanna粉丝的读书笔记,有种茅塞顿开 ...

  6. 结合源码深入理解Android Crash处理流程

    应用程序crash在开发过程中还是很常见的,本文主要是从源码的角度去跟踪下Android对于crash的处理流程.App crash的全称:Application crash.而Crash又分为:na ...

  7. Android学习之Activity源码的理解(一)

    一.Activity为Android系统中四大组件之一,是Android程序的呈现层,并通过界面与用户进行交互,因此理解Activity源码是有必要的. 二.之前我写过一篇文章:http://blog ...

  8. jQuery源码解析之on事件绑定

    本文采用的jQuery源码为jquery-3.2.1.js jquery的on方法用来在选定的元素上绑定一个或多个事件处理函数. 当参数selector存在时,通常会用来对已经存在的元素或将来即将添加 ...

  9. LruCache源码的理解

    LruCache源码的理解 使用场景 在Android手机上加载图片,一般会用到三级缓存策略 内存的缓存策略,一般会用到LruCache来解决 内存用于缓存遇到的问题 1. 手机给每个应用分配的内存空 ...

最新文章

  1. 一个计算机高手的成长(转)
  2. 【云计算】阿里云云计算专业认证考试
  3. 调驱动 一定注意 cache 表的
  4. c语言中 字符串常量的界定符,C字符串操作函数
  5. 来入门一下kotlin吧
  6. c++ string后面会添加‘\0‘
  7. HBase原理 – snapshot 快照
  8. 使用go的ssh包快速打造一个本地命令行ssh客户端
  9. 语音识别算法、模型等解析
  10. 新编计算机基础教程考试知识点,新编计算机基础教程
  11. 在线自定义编辑网络拓扑图
  12. PPT 插入无限循环滚动的图片
  13. zanti html恶搞,Html.AntiForgeryToken 突然报这个错误 太奇怪了
  14. Spectrum数据采集卡和任意波形发生器在杨百翰大学声波研究中的应用
  15. 零伽壹浅谈:区块链技术在审计工作的应用
  16. 吴恩达机器学习15-异常检测
  17. xv6操作系统中增加一个系统调用
  18. 序列的算法(一·a)马尔可夫模型
  19. 笔录 Flutter(二)Image的属性、使用、圆角、圆形
  20. 高防CDN是如何防护网站,防止CC攻击的?

热门文章

  1. LeetCode 38外观数列39组合总和
  2. 剑指offer(11-25题)详解
  3. virtualbox调试linux内核,virtualbox+kgdbt调试linux内核
  4. 不会这些基础命令,白做运维了
  5. 妙啊,这条命令可以查出哪些端口被防火墙阻止了
  6. 【实验】如何实现远程同一网段互通?
  7. 抽象类实例化 使用原功能 c++_java 学习笔记 day08 final/static关键字、抽象类和接口...
  8. 【附赠PPT】 KubeMeet 成都站回顾:让云原生应用交付和管理变得更简单
  9. 深度解读畅捷通云原生架构转型实战历程
  10. 卷积滤波 英文_3. 数码相机内的图像处理基本图像滤波