SpringBoot详细讲解日志文件

 更新时间:2022年06月20日 09:50:14   作者:独一无二的哈密瓜  
Spring Boot默认使用SLF4J+Logback 记录日志,并提供了默认配置,即使我们不进行任何额外配,也可以使用SLF4J+Logback进行日志输出

1 日志的功能是什么?

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

日志的功能 :

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

2 如何自定义日志打印

自定义日志的打印步骤 :

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

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

2.1 在程序中获取日志对象

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

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

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

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

2.2 调用日志对象打印日志

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

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

2.3 查看日志打印的结果

3 日志的级别

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

3.1 日志级别的分类

日志的级别分为:

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

日志级别的顺序 :

3.2 日志级别的设置

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

.properties 中的格式

logging.level.root=error

.yml 中的格式

logging:
  level:
    root: info

输出

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

日志输出级别, 默认是info

4 日志持久化

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

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

配置日志文件的保存路径

logging:
  file:
    path: D:/logs

配置日志文件的文件名

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

运行后查看文件

5 更简单的日志输出

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

下载插件 EditStarters

5.1 添加 lombok 依赖

pom.xml 里右击 选则 Generate

记得刷新以下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

到此这篇关于SpringBoot详细讲解日志文件的文章就介绍到这了,更多相关SpringBoot日志文件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • springboot @validated List校验失效问题

    springboot @validated List校验失效问题

    这篇文章主要介绍了springboot @validated List校验失效问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-07-07
  • Mybatis 入参类型方式全面详解

    Mybatis 入参类型方式全面详解

    这篇文章主要为大家介绍了Mybatis入参的类型方式全面示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-06-06
  • Java集合之CopyOnWriteArrayList详解

    Java集合之CopyOnWriteArrayList详解

    这篇文章主要介绍了Java集合之CopyOnWriteArrayList详解,CopyOnWriteArrayList是ArrayList的线程安全版本,内部也是通过数组实现,每次对数组的修改都完全拷贝一份新的数组来修改,修改完了再替换掉老数组,这样保证了只阻塞写操作,需要的朋友可以参考下
    2023-12-12
  • 详解Java解析XML的四种方法

    详解Java解析XML的四种方法

    本篇文章主要介绍了java解析XML的几种方式,XML现在已经成为一种通用的数据交换格式,给数据集成与交互提供了方便,有需要的可以了解一下。
    2016-11-11
  • MybatisPlus实现真正批量插入的详细步骤

    MybatisPlus实现真正批量插入的详细步骤

    在数据库操作中,批量插入是提升效率的重要手段,MyBatis-Plus提供了多种批量插入方法,但默认的saveBatch方法效率并不高,文章介绍了通过手动拼接SQL、使用IService接口以及自定义insertBatchSomeColumn方法进行优化,以实现更高效的批量插入,并给出了性能优化建议
    2024-10-10
  • Idea配置超详细图文教程(2020.2版本)

    Idea配置超详细图文教程(2020.2版本)

    这篇文章主要介绍了Idea配置超详细图文教程(2020.2版本),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-08-08
  • Java的云打印Lodop

    Java的云打印Lodop

    这篇文章主要介绍了Java的云打印Lodop 的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-07-07
  • Spring Boot Admin 监控指标接入Grafana可视化的实例详解

    Spring Boot Admin 监控指标接入Grafana可视化的实例详解

    Spring Boot Admin2 自带有部分监控图表,如图,有线程、内存Heap和内存Non Heap,这篇文章主要介绍了Spring Boot Admin 监控指标接入Grafana可视化,需要的朋友可以参考下
    2022-11-11
  • Spring Cache手动清理Redis缓存

    Spring Cache手动清理Redis缓存

    这篇文章主要介绍了Spring Cache手动清理Redis缓存,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10
  • 在Struts2中的结果集类型

    在Struts2中的结果集类型

    本篇文章,小编为大家介绍关于在Struts2中的结果集类型,有需要的朋友可以参考一下
    2013-04-04

最新评论