Spring Boot 3.日志

日志

1. 日志框架

  • 小故事
    小张,开发一个大型系统;
    1. System.out.pringln('') 将关键数据打印在控制台;去掉?下载一个文件?
    2. 框架来记录系统的一些运行时信息;日志框架;zhangloging.jar
    3. 高大上的功能?异步模式?自动归档?xxxzhanglogging-good.jar
    4. 将以前框架卸载下来?换上新的框架,重新修改之前的api;zhanglogging-prefect.jar
    5. jdbc--数据库驱动;
    写了一个统一的接口层;日志门面(日志的一个抽象层);logging-abstract.jar;
    给项目中导入具体的日志实现就可以了,我们之前的日志框架都是实现的抽象层
  • 市面上的日志框架
    lul,jcl,jboss-logging,logback,jog4j,log4j2,slf4j。。。
    Spring Boot 3.日志
    左边选一个门面(抽象层),右边来选一个实现
    日志门面:slf4j
    日志实现:logback
  • spring boot:底层时 spring框架,spring框架默认使用的时 jcl
    spring boot选用 slf4j和 logback

2. slf4j 使用

1. 如何在系统中使用 slf4j

  • 以后开发的时候,日志记录方法的调用,不应该来直接调用日志的实现类,而是调用日志抽象里面的方法。
  • 官方地址 http://www.slf4j.org/manual.html
    给系统里面导入 slf4j 的jar 和logback的实现 jar
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    
    public class HelloWorld {
      public static void main(String[] args) {
    	Logger logger = LoggerFactory.getLogger(HelloWorld.class);
    	logger.info("Hello World");
      }
    }
    
    Spring Boot 3.日志
    每一个日志的实现框架都有自己的配置文件。使用slf4j以后,配置文件还是做成日志实现框架字节本身的配置文件

2. 遗留问题

  • a(slf4j+logback):spring(commons-logging),hibernate(jboos-logging),mybatis,xx
    统一日志记录,即使是别的框架和我一起统一使用 slf4j进行输出?
    Spring Boot 3.日志
如何让系统中所有的日志统一到 slf4j
  1. 将系统中其他日志框架先排除出去
  2. 用中间包来替换原有的日志狂降。
  3. 我们导入 slf4j其他的实现

3. spring boot日志关系

Spring Boot 3.日志

  • starter 每一个启动器【场景】都要依赖的
    	<dependency>
    		<groupId>org.springframework.boot</groupId>
    		<artifactId>spring-boot-starter</artifactId>
    	</dependency>
    
    spring boot使用它来做日志功能
    starter里面依赖的
    	<dependency>
    		<groupId>org.springframework.boot</groupId>
    		<artifactId>spring-boot-starter-logging</artifactId>
    	</dependency>
    	<dependency>
    
    Spring Boot 3.日志
    底层依赖关系:总结:
    1. spring boot低沉也是 slf4j+logback的方式进行日志记录
    2. spring boot也把其他的日志都替换成了 slf4j
    3. 中间替换包
      Spring Boot 3.日志
      Spring Boot 3.日志
    4. 如果我们要引入其他框架?一定要把这个框架的默认日志依赖移除掉。
      spring 框架用的是 commons-logging;
      Spring Boot 3.日志
  • spring boot能自动适配所有的日志,而且底层使用 slf4j+logback的方式记录日志,引入其他框架的时候,只需要把这个框架依赖的日志排除掉

4. 日志使用

1. 默认配置

  • spring boot默认帮我们配置好了日志
上一篇:logback日志配置写入多个目录


下一篇:记录日志logback