传送门
SpringMVC的源码解析(精品)
Spring6的源码解析(精品)
SpringBoot3框架(精品)
MyBatis框架(精品)
MyBatis-Plus
SpringDataJPA
SpringCloudNetflix
SpringCloudAlibaba(精品)
Shiro
SpringSecurity
java的LOG日志框架
Activiti(敬请期待)
JDK8新特性
JDK9新特性
JDK10新特性
JDK11新特性
JDK12新特性
JDK13新特性
JDK14新特性
JDK15新特性
JDK16新特性
JDK17新特性
JDK18新特性
JDK19新特性
JDK20新特性
JDK21新特性
其他技术文章传送门入口
一、概念
框架和门面的区别
框架不同,api也不同,而门面更高级,在框架之上,统一了因为不同框架技术不同api,用门面就是统一api了。牛逼
二、日志框架
1、JUL
1.1、概念
1.2、入门案例
1.3、日志级别
1.4、自定义日志级别
测试结果
set设置为ALL的时候,所有都出来了
1.5、日志输出
截图中少了那一堆打印语句,拷贝过来后,出现后面截图 文件中内容
同时在控制台和磁盘输出日志
1.6、父子关系
1.7、配置文件
在jdk中jre中lib文件夹下面的logging.propertiy文件,默认就是这个配置文件,所以上面的截图统统没有进行配置文件的配置。
1.8、原理解析
2、Log4j
1.1、概念
1.2、入门案例
1.3、日志管理器(原理分析)
debug日志的开关
1.4、格式化
1.5、输出文件
1.6、日志文件拆分
按文件大小拆分
配置
增强后配置
按时间进行拆分
配置
日志持久化
47和48行一定要同一行,这边为了方便截图。不能换行。
自定义Logger
3、Logback
3.1、概念
3.2、入门案例
注意哦,默认是debug打印的级别。额,这个,和平时印象不太一样
3.3、配置文件使用
3.4、配置输出文件
3.5、输出为HTML
3.6、日志拆分
3.7、过滤器
3.8、异步日志
配置异步日志 164改成 146行的name,截图没截下来
3.9、自定义日志
3.10、logback补充说明
不建议大量的配置翻译
4、Log4j2(本身也是门面)
4.1、概念
4.2、入门案例
4.3、配置文件(本身门面的使用)
标签大部分大写开头了
4.4、Log4j2+SLF4J
导入日志门面和适配器
测试就变成了 slf4j门面了。
4.5、日志拆分
4.6、异步日志
概念
性能对比
AsyncAppender
测试结果,和logback异步类似
小总结
AsyncLogger(更好)
全局异步:
之前案例截图中配置的异步要注释掉
测试结果,同上面案例,只是性能更好一点
混合异步(更好):
测试结果
三、日志门面
1、JCL
1.1、概念
1.2、入门案例
1.3、源码
和后面截图顺序反了
2、SLF4J
2.1、概念
log4j最早开源,然后java在这个基础上搞了JUL,log4j也在借鉴java,把核心类弄成了Logger。之后log4j的核心开发作者跳槽了,弄出了logback,没有跳槽的剩余团队人员在log4j的基础上结合logback弄出来了log4j2
2.2、入门案例
2.3、动态打印日志
2.4、日志集成分类
2.5、同时集成多个日志框架+原理分析
同时集成多个日志框架
哪个日志框架先导入,就先使用哪个日志框架,pom.xml写的顺序决定了哪个日志框架先实现
pom中 slf4j-simple在logback包之前,就是这个错误,换个顺序居然错误变了,看后面截图,妙啊,神奇啊
秒啊,这个错误提示好好记住(多个日志框架引入进来后,看顺序,而且会报multiple这个多个绑定错误,妙啊)
pom顺序换一下,将logback的包换到上面去,就报错了这个错误,秒啊
多个日志的警告分析(原理分析)
2.6、单独简单集成logback
在上面截图的基础上,去掉算了sl4j-simple的包,就变成了纯黑色字体了。
2.7、slf4j-nop禁止日志
顺序性
禁止了,帅的一批哦,不过这个玩意业务上应该不会用吧。
2.8、单独简单集成log4j
log4j12,你看看这些名字,非常相似
加个配置文件,前面就不报错了
2.9、单独简单集成JUL
2.10、log4j桥接到slf4j+logback
背景
2.11、桥接器原理