springBoot 日志

springBoot 日志

  • 整合原理
  • 日志格式
    • 默认日志格式
    • 在配置文件中修改日志格式
  • 在业务中写日志
  • 日志级别
  • 日志分组
  • 文件输出
  • 归档和切割
    • 归档
    • 切割
  • 自定以日志系统
    • 切换默认日志场景 log4j2的使用
  • 最佳实战

整合原理

规范:项目开发中不要编写:System.out.printIn(),应该用日志记录信息
springBoot 日志_第1张图片
1、spring使用commons-logging作为内部日志,但底层日志实现是开放的,可对接其他日志框架
2、支持jul,log4j,logback,springBoot提供了默认的控制台输出配置,也可以配置输出为文件
3、logback是默认使用的
4、虽然日志框架很多,但是我们不用担心,使用springBoot的默认配置就能工作的很好

springBoot 日志是如何配置好的
1、每个starter场景,都会导入一个核心场景spring-boot-starter
2、核心场景引用了日志所有功能spring-boot-logging
3、默认使用了logback+slf4j组合作为默认底层日志
4、日志是系统已启动就要用的,xxxautoconfiguration是系统启动好了以后放好的组件,后来用的
5、日志是利用监听机制配置好的,appLicationlistener
6、日志所有的配置都可以通过修改配置文件实现,以logging开始的所有配置

日志格式

默认日志格式

springBoot 日志_第2张图片

在配置文件中修改日志格式

springBoot 日志_第3张图片
springBoot 日志_第4张图片

在业务中写日志

springBoot 日志_第5张图片

package com.atguigu.boot.controller;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * @author jitwxs
 * @date 2023年10月17日 19:59
 */
@RestController
public class Hellower {
    Logger logger = LoggerFactory.getLogger(getClass());
    @GetMapping("/h")
    public String hello(){
        logger.info("hahahaha");
        return "hello";
    }
}

在调用接口的时候就会返回日志
springBoot 日志_第6张图片

日志级别

由高到低:All,TRACE,DEBUG,INFO,WARN,ERROR,FATAL,OFF
只会打印指定级别及以上级别的日志
All:打印所有的日志
TRACE:追踪框架详细流程日志,一般不适用
DEBUG:开发调试细节日志
INFO:关键,感兴趣信息日志
WARN:警告但不是错误的信息日志 比如:版本过失
ERROR:业务错误日志,比如出现各种异常
FATAL:致命错误日志,比如jvm系统崩溃
OFF:关闭所有日志

不指定级别的所有类,都是用root指定的级别作为默认级别
springBoot日志默认级别是INFO
1、在application.properties/Yaml中配置logging.level=指定日志级别
2、level可取值范围:TRACE,DEBUG,INFO,WARN,ERROR,FATAL,Or OFF,定义在logLEVEL类中
3、root的logger-name叫root,可以配置logging.level.root=warn,代表所有未指定日志级别都是用root的warn级别
springBoot 日志_第7张图片
在配置文件中调整日志级别,日志级别默认是info
springBoot 日志_第8张图片

日志传递参数
springBoot 日志_第9张图片
springBoot 日志_第10张图片

日志分组

springBoot 日志_第11张图片

#日志分组
logging.group.abc=com.atguigu.boot.controller,com.atguigu.boot.controller.service,com.aaa,com.bbb
logging.level.abc = debug
logging.level.sql = debug

文件输出

#指定日志文件名
#1、只写名字,就生成到当前项目同位置的demo.log
#2、写名字+路径:生成到指定位置的指定文件

logging.file.name=haha.log

springBoot 日志_第12张图片
springBoot 日志_第13张图片

如果path和name同时存在都会生成
springBoot 日志_第14张图片

springBoot 日志_第15张图片

归档和切割

springBoot 日志_第16张图片

归档

每天的日志单独存到一个文件中

切割

每个文件10MB,超过大小切割成另外一个文件
springBoot 日志_第17张图片

#归档分割
logging.logback.rollingpolicy.file-name-pattern=${LOG_FILE}.%d{yyyy-MM-dd}.%i.gz
#超过1MB进行分割
logging.logback.rollingpolicy.max-file-size= 1MB

自定以日志系统

springBoot 日志_第18张图片

springBoot 默认使用的是logback的日志
springBoot 日志_第19张图片
springBoot 日志_第20张图片

切换默认日志场景 log4j2的使用

禁用原来的日志导入新的日志
springBoot 日志_第21张图片

springBoot 日志_第22张图片
springBoot 日志_第23张图片

最佳实战

springBoot 日志_第24张图片

你可能感兴趣的:(springboot,spring,boot,java,spring)