目录
  • 1 日志的功能是什么?
  • 2 如何自定义日志打印
    • 2.1 在程序中获取日志对象
    • 2.2 调用日志对象打印日志
    • 2.3 查看日志打印的结果
  • 3 日志的级别
    • 3.1 日志级别的分类
    • 3.2 日志级别的设置
  • 4 日志持久化
    • 5 更简单的日志输出
      • 5.1 添加 lombok 依赖
      • 5.2 输出日志
      • 5.3 lombok 更多的注解

    1 日志的功能是什么?

    如果程序报错了, 却不能从控制台查看日志, 那么就不知道错误的原因了.

    日志的功能 :

    • 快速的排查和定位问题
    • 记录用户登录的日志
    • 记录系统的操作日志
    • 记录程序的执行时间

    2 如何自定义日志打印

    自定义日志的打印步骤 :

    第一步: 在程序当中获取日志对象

    第二步: 调用日志对象的打印方法, 将信息打印出来

    2.1 在程序中获取日志对象

    获取日志对象需要使用日志工厂 LoggerFactory

    这里的 Logger 对象属于 org.slf4j 包下.

        // 1. 得到日志对象
        private static final Logger logger = LoggerFactory.getLogger(UserController.class);
    

    SpringBoot详细讲解日志文件

    SpringBoot中内置了 日志框架slf4j, 可以直接在程序中调用slf4j来输出日志

    2.2 调用日志对象打印日志

    日志对象的打印方法有很多, 目前展示这一个

            // 2. 使用日志对象打印日志
            logger.info("日志级别:info");
    

    2.3 查看日志打印的结果

    SpringBoot详细讲解日志文件

    3 日志的级别

    有了日志的级别, 开发者就可以设置日志级别, 从而得到对自己有用的日志信息, 大大节省了分类的成本.

    3.1 日志级别的分类

    日志的级别分为:

    • trace :普通微量的日志信息
    • debug : 调式的时候的日志信息
    • info : 普通的日志信息 (默认日志级别)
    • warn : 警告的日志信息
    • error : 错误的日志信息
    • fatal : 致命错误,最高日志级别

    日志级别的顺序 :

    SpringBoot详细讲解日志文件

    3.2 日志级别的设置

    在配置文件中配置日志级别

    .properties 中的格式

    logging.level.root=error

    .yml 中的格式

    logging:
      level:
        root: info

    输出

    SpringBoot详细讲解日志文件

    如果设置的是info级别.那么级别低于info的就不输出了.

    日志输出级别, 默认是info

    4 日志持久化

    上面演示的日志, 都是输出在控制台的, 如果在生产环境下, 想要保存这些日志, 方便日后查看日志. 这里的把日志保存下来, 就叫做持久化

    注意: 默认情况下SpringBoot会有一个最大的日志大小限制, 如果日志的文件大于默认的最大日志大小, 那么SpringBoot会重新

    配置日志文件的保存路径

    logging:
      file:
        path: D:/logs

    配置日志文件的文件名

    logging:
      file:
        name: D:/logs/spring.log

    运行后查看文件

    SpringBoot详细讲解日志文件

    5 更简单的日志输出

    如何在SpringBoot中快速添加依赖?

    下载插件 EditStarters

    SpringBoot详细讲解日志文件

    5.1 添加 lombok 依赖

    pom.xml 里右击 选则 Generate

    SpringBoot详细讲解日志文件

    SpringBoot详细讲解日志文件

    SpringBoot详细讲解日志文件

    记得刷新以下maven

    5.2 输出日志

    首先添加 @Slf4j 注解

    使用log对象打印日志, 例如 log.error()

    @Controller
    @Slf4j
    public class UsersController {
        @RequestMapping("/log")
        @ResponseBody
        public String printLog() {
            log.error("error");
            return "Log";
        }
    }
    

    5.3 lombok 更多的注解

    普通注解

    注解 作用
    @Getter ⾃动添加 getter ⽅法
    @Setter ⾃动添加 setter ⽅法
    @ToString ⾃动添加 toString ⽅法
    @EqualsAndHashCode ⾃动添加 equals 和 hashCode ⽅法
    @NoArgsConstructor ⾃动添加⽆参构造⽅法
    @AllArgsConstructor ⾃动添加全属性构造⽅法,顺序按照属性的定义顺序
    @NonNull 属性不能为 null
    @RequiredArgsConstructor ⾃动添加必需属性的构造⽅法,final + @NonNull 的属性为必需

    组合注解

    注解 作用
    @Data @Getter + @Setter + @ToString +@EqualsAndHashCode +@RequiredArgsConstructor +@NoArgsConstructor

    日志注解

    注解 作用
    @Slf4j 添加⼀个名为 log 的⽇志,使⽤ slf4
    声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。