(12)SpringBoot - 日志框架分类和选择

1、日志框架

1.1 假设有一个人是小张,开发一个大型系统

1、由于系统有点大,为了调试和测试每次都用System.out.println("");将关键数据打印在控制台;等项目开发完就要把所有的syso去掉?一行一行的去掉或者注释掉很麻烦,我们不如写在一个文件里,方便后来的监控和运行状态。

​ 2、框架来记录系统的一些运行时信息;日志框架 ; 小张写了一个日志框架,名为 zhanglogging.jar;
​ 3、高大上的几个功能?异步模式?自动归档?xxxx? 随着时代进步,进一步改良为:zhanglogging-good.jar?
​ 4、将以前框架卸下来?换上新的框架,重新修改之前相关的API;更加优良的:zhanglogging-prefect.jar;
​ 5、JDBC—数据库驱动;
现在写数据库都是面向接口编程,然后把数据库的实现放进去就行了
​ 为所有的日志框架写了一个统一的接口层;暂且就叫日志门面(日志的一个抽象层);logging-abstract.jar;
​ 到底使用2,3,4中的那个jar包,我们只需要给项目中导入具体的日志实现就行了;我们之前的日志框架都是实现的抽象层;

1.2 市面上的日志框架;

JUL、JCL、Jboss-logging、logback、log4j、log4j2、slf4j…

日志门面 (日志的抽象层)日志实现
JCL(Jakarta Commons Logging) SLF4j(Simple Logging Facade for Java) jboss-loggingLog4j JUL(java.util.logging) Log4j2 Logback

1.3 选择理由:
JCL:版本太老
jboss-logging:用的场景太少了
Log4j,SLF4j,Logback都是同一个人所写。Log4j的进化版是Logback
如果选了SLF4j ,理所当然的选择Log4j或者Logback;

Log4j2,是Apache写的日志框架,因为写的太好了,很多框架还没有用起来。
所以我们选择SLF4J,Logback

1.4
左边选一个门面(抽象层)、右边来选一个实现;
日志门面: SLF4J;
日志实现:Logback;
SpringBoot:底层是Spring框架,Spring框架默认是用JCL;

​**SpringBoot进行了包装 选用 SLF4j和logback;**


版权声明:本文为Yuz_99原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。