从源码来理解slf4j的绑定,以及logback对配置文件的加载
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对配置文件的加载相关推荐
- java重写源码类不生效(自己重写的类没有被jvm加载)
背景 很多情况下我们需要调试源码或者修改源码以满足我们的开发需求 我们会项目的java目录下创建一个类,目录和类名都与源码的一致,然后将源码中的代码全部拷贝到我们自己创建的类中,再加入一些我们自己的逻 ...
- 《Spring源码深度解析 郝佳 第2版》bean的加载、循环依赖的解决
往期博客: <Spring源码深度解析 郝佳 第2版>容器的基本实现与XML文件的加载 <Spring源码深度解析 郝佳 第2版>XML标签的解析 往期博客完成了xml文件加载 ...
- Alian解读SpringBoot 2.6.0 源码(一):SpringApplication对象创建(Spring工厂加载机制)
目录 一.背景 二.SpringApplication实例化 2.1.实例化方法入口 2.2.推断应用程序类型 2.3.Spring工厂加载机制 2.3.1.获取Spring工厂实例(重要) 2.3. ...
- 从源码角度理解ConstraintLayout#onMeasure对child的measure调用次数
熟悉绘制流程的都知道,ViewGroup可以决定child的绘制时机以及调用次数. 今天我们简单看下较为复杂的ConstraintLayout,看一下它对子View的onMeasure调用次数具体是多 ...
- android 点击事件消费,Android View事件分发和消费源码简单理解
Android View事件分发和消费源码简单理解 前言: 开发过程中觉得View事件这块是特别烧脑的,看了好久,才自认为看明白.中间上网查了下singwhatiwanna粉丝的读书笔记,有种茅塞顿开 ...
- 结合源码深入理解Android Crash处理流程
应用程序crash在开发过程中还是很常见的,本文主要是从源码的角度去跟踪下Android对于crash的处理流程.App crash的全称:Application crash.而Crash又分为:na ...
- Android学习之Activity源码的理解(一)
一.Activity为Android系统中四大组件之一,是Android程序的呈现层,并通过界面与用户进行交互,因此理解Activity源码是有必要的. 二.之前我写过一篇文章:http://blog ...
- jQuery源码解析之on事件绑定
本文采用的jQuery源码为jquery-3.2.1.js jquery的on方法用来在选定的元素上绑定一个或多个事件处理函数. 当参数selector存在时,通常会用来对已经存在的元素或将来即将添加 ...
- LruCache源码的理解
LruCache源码的理解 使用场景 在Android手机上加载图片,一般会用到三级缓存策略 内存的缓存策略,一般会用到LruCache来解决 内存用于缓存遇到的问题 1. 手机给每个应用分配的内存空 ...
最新文章
- 一个计算机高手的成长(转)
- 【云计算】阿里云云计算专业认证考试
- 调驱动 一定注意 cache 表的
- c语言中 字符串常量的界定符,C字符串操作函数
- 来入门一下kotlin吧
- c++ string后面会添加‘\0‘
- HBase原理 – snapshot 快照
- 使用go的ssh包快速打造一个本地命令行ssh客户端
- 语音识别算法、模型等解析
- 新编计算机基础教程考试知识点,新编计算机基础教程
- 在线自定义编辑网络拓扑图
- PPT 插入无限循环滚动的图片
- zanti html恶搞,Html.AntiForgeryToken 突然报这个错误 太奇怪了
- Spectrum数据采集卡和任意波形发生器在杨百翰大学声波研究中的应用
- 零伽壹浅谈:区块链技术在审计工作的应用
- 吴恩达机器学习15-异常检测
- xv6操作系统中增加一个系统调用
- 序列的算法(一·a)马尔可夫模型
- 笔录 Flutter(二)Image的属性、使用、圆角、圆形
- 高防CDN是如何防护网站,防止CC攻击的?
热门文章
- LeetCode 38外观数列39组合总和
- 剑指offer(11-25题)详解
- virtualbox调试linux内核,virtualbox+kgdbt调试linux内核
- 不会这些基础命令,白做运维了
- 妙啊,这条命令可以查出哪些端口被防火墙阻止了
- 【实验】如何实现远程同一网段互通?
- 抽象类实例化 使用原功能 c++_java 学习笔记 day08 final/static关键字、抽象类和接口...
- 【附赠PPT】 KubeMeet 成都站回顾:让云原生应用交付和管理变得更简单
- 深度解读畅捷通云原生架构转型实战历程
- 卷积滤波 英文_3. 数码相机内的图像处理基本图像滤波