• springBoot 日志


    整合原理

    规范:项目开发中不要编写:System.out.printIn(),应该用日志记录信息
    在这里插入图片描述
    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开始的所有配置

    日志格式

    默认日志格式

    在这里插入图片描述

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

    在这里插入图片描述
    在这里插入图片描述

    在业务中写日志

    在这里插入图片描述

    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";
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    在调用接口的时候就会返回日志
    在这里插入图片描述

    日志级别

    由高到低: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级别
    在这里插入图片描述
    在配置文件中调整日志级别,日志级别默认是info
    在这里插入图片描述

    日志传递参数
    在这里插入图片描述
    在这里插入图片描述

    日志分组

    在这里插入图片描述

    #日志分组
    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
    • 2
    • 3
    • 4

    文件输出

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

    logging.file.name=haha.log
    
    • 1

    在这里插入图片描述
    在这里插入图片描述

    如果path和name同时存在都会生成
    在这里插入图片描述

    在这里插入图片描述

    归档和切割

    在这里插入图片描述

    归档

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

    切割

    每个文件10MB,超过大小切割成另外一个文件
    在这里插入图片描述

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

    自定以日志系统

    在这里插入图片描述

    springBoot 默认使用的是logback的日志
    在这里插入图片描述
    在这里插入图片描述

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

    禁用原来的日志导入新的日志
    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述

    最佳实战

    在这里插入图片描述

  • 相关阅读:
    JavaScript奇淫技巧:20行代码,实现屏幕录像
    【JavaScript】JS语法入门到实战
    LeetCode刷题笔记:165.输出二叉树
    IntelliJ IDEA使用——常用快捷键(Windows版)
    java 企业工程管理系统软件源码 自主研发 工程行业适用
    SpringCloud
    在java开发工具IntelliJ IDEA中如何提交更改并将其推送到 Git 存储库?
    【PyQt】多窗口使用信号-槽传递数据
    机器学习——Logistic Regression
    用Excel制作甘特图跟踪项目进度(附绘制教程)
  • 原文地址:https://blog.csdn.net/m0_50207524/article/details/133888401