6.SpringBoot 日志文件

这篇具有很好参考价值的文章主要介绍了6.SpringBoot 日志文件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

大家好,我是晓星航。今天为大家带来的是 SpringBoot 日志文件 相关的讲解!😀

1.日志概述

⽇志是程序的重要组成部分,想象⼀下,如果程序报错了,不让你打开控制台看⽇志,那么你能找到报错的原因吗?

答案是否定的,写程序不是买彩票,不能完全靠猜,因此⽇志对于我们来说,最主要的⽤途就是排除和定位问题。

除了发现和定位问题之外,我们还可以通过⽇志实现以下功能:

  • 记录⽤户登录⽇志,⽅便分析⽤户是正常登录还是恶意破解⽤户。
  • 记录系统的操作⽇志,⽅便数据恢复和定位操作⼈。
  • 记录程序的执⾏时间,⽅便为以后优化程序提供数据⽀持。

以上这些都是⽇志提供的⾮常实⽤的功能。

日志真实使用案例:

关键节点上的关键数据⽇志记录举例:例如,⽐如咱们的教务系统,在注册时候不⽌要在教务系统添加 ⼀条⽤户记录,同时也会给⽐特论坛添加⼀条⼀模⼀样的⽤户记录,这样做的⽬的是为了实现⼀次注 册,多处使⽤的⽬的。不需要⽤户在两边系统注册了,等于在程序中以极低的成本实现的⽤户数据的同 步,但这样设计有⼀个致命的问题,⽤户在教务系统注册信息的时候,如果论坛挂了,那么⽤户的注册 ⾏为就会失败?因为⽤户在注册的时候需要同步注册到论坛系统,但论坛现在挂了,这个时候怎么办 呢?

最简单的解决⽅案,教务系统在注册的时候,不管论坛是否注册成功,都给⽤户返回成功,那这个时候 如果论坛注册失败了怎么办?⾮常简单,如果注册失败了,记录⼀下⽇志,等论坛恢复正常之后,把⽇ 志给论坛的管理⼈员,让他⼿动将注册失败的⽤户同步到论坛系统,这样就最低成本的解决了问题。这 就是⽇志的重要作⽤。

2.日志作用

1.定位和发现问题

2.系统监控 - 在6.18或11.11时,程序员们会通过系统监控来检测系统是不是有问题和bug

3.数据采集 - 例如你在抖音里搜了一个电脑,你去淘宝上看宝贝时,这时漫天都是电脑

4.日志审计

随着互联网的发展,众多企业的关键业务越来越多的运行于网络之上.网络安全越来越受到大家的关注,系统安全也成为了项目中的一个重要环节,安全审计也是系统中非常重要的部分,国家的政策法规、行业标准等都明确对日志审计提出了要求,通过系统日志分析,可以判断一些非法攻击,非法调用,以及系统处理过程中的安全隐患.

3.使用和观察日志

3.1如何观察日志

6.SpringBoot 日志文件,JavaEE进阶,spring boot,后端,java,日志

3.2使用日志

注意这里引入slg4j包,不要导错包了

6.SpringBoot 日志文件,JavaEE进阶,spring boot,后端,java,日志

1.定义日志对象

6.SpringBoot 日志文件,JavaEE进阶,spring boot,后端,java,日志

2.打印日志

6.SpringBoot 日志文件,JavaEE进阶,spring boot,后端,java,日志

3.观察通过Logger Api打印的日志区别

6.SpringBoot 日志文件,JavaEE进阶,spring boot,后端,java,日志

3.3日志级别

  • FATAL: 致命信息,表示需要立即被处理的系统级错误

  • ERROR: 错误信息,级别较高的错误日志信息,但仍然不影响系统的继续运行,

  • WARN: 警告信息,不影响使用,但需要注意的问题

  • INFO: 普通信息, 用于记录应用程序正常运行时的一些信息,例如系统启动完成、请求处理完成等

  • DEBUG: 调试信息,需要调试时候的关键信息打印.

  • TRACE: 追踪信息,比DEBUG更细粒度的信息事件(除非有特殊用意,否则请使用DEBUG级别替代)

6.SpringBoot 日志文件,JavaEE进阶,spring boot,后端,java,日志

Spring 默认的日志级别是info

3.4日志持久化

数据保存在数据库中,是一种持久化的方式

日志保存在文件中,也是一种持久化的方式

6.SpringBoot 日志文件,JavaEE进阶,spring boot,后端,java,日志

6.SpringBoot 日志文件,JavaEE进阶,spring boot,后端,java,日志

6.SpringBoot 日志文件,JavaEE进阶,spring boot,后端,java,日志

如果没有加路径,默认是放在当前项目下(idea启动方式)

6.SpringBoot 日志文件,JavaEE进阶,spring boot,后端,java,日志

6.SpringBoot 日志文件,JavaEE进阶,spring boot,后端,java,日志

SpringBoot的特点:约定大于配置

6.SpringBoot 日志文件,JavaEE进阶,spring boot,后端,java,日志

6.SpringBoot 日志文件,JavaEE进阶,spring boot,后端,java,日志

如果二者同时存在,path就失效了。name的优先级要高于path。

6.SpringBoot 日志文件,JavaEE进阶,spring boot,后端,java,日志

这里因为name和path同时存在,但是name优先级更高,导致只有name中的login/ioc.log文件被创建。

3.5日志分割

6.SpringBoot 日志文件,JavaEE进阶,spring boot,后端,java,日志

application.yml:

6.SpringBoot 日志文件,JavaEE进阶,spring boot,后端,java,日志

分割完成后,文件夹显示:

6.SpringBoot 日志文件,JavaEE进阶,spring boot,后端,java,日志

运行三次之后:

6.SpringBoot 日志文件,JavaEE进阶,spring boot,后端,java,日志6.SpringBoot 日志文件,JavaEE进阶,spring boot,后端,java,日志

6.SpringBoot 日志文件,JavaEE进阶,spring boot,后端,java,日志

3.6日志的简单写法(使用@Slf4j)

选择的注解来源于lombok包

6.SpringBoot 日志文件,JavaEE进阶,spring boot,后端,java,日志

6.SpringBoot 日志文件,JavaEE进阶,spring boot,后端,java,日志

可以看到在我们使用了 @Slf4j 来注释代码后,我们就不需要自己初始化一个Logger对象,而是系统为我们提供一个log对象可以直接引用

4.日志框架

4.1门面模式(外观模式)

SLF4J是门面模式的典型应用(但不仅仅使用了门面模式)

门面模式定义

门面模式(Facade Pattern)又称为外观模式,提供了一个统一的接口,用来访问子
系统中的一群接口.其主要特征是定义了一个高层接口,让子系统更容易使用.

6.SpringBoot 日志文件,JavaEE进阶,spring boot,后端,java,日志

门面模式主要包含2种角色:

外观角色(Facade):也称门面角色,系统对外的统一接口

子系统角色(SubSystem):可以同时有一个或多个 SubSystem.每个 SubSytem 都
不是一个单独的类,而是一个类的集合.SubSystem 并不知道 Facade 的存在,对
于 SubSystem 而言, Facade 只是另一个客户端而已(即 Facade 对 SubSystem 透
明)

例如我们平时回家小米自动开关灯系统:

接口、类设计:

6.SpringBoot 日志文件,JavaEE进阶,spring boot,后端,java,日志

6.SpringBoot 日志文件,JavaEE进阶,spring boot,后端,java,日志

当我们没用门面模式时,我们要手动一个一个打开房间的灯。

6.SpringBoot 日志文件,JavaEE进阶,spring boot,后端,java,日志

但是我们加入了一个总开关后

6.SpringBoot 日志文件,JavaEE进阶,spring boot,后端,java,日志6.SpringBoot 日志文件,JavaEE进阶,spring boot,后端,java,日志

此时我们只需要控制总开关就可以实现所有灯的开关功能

6.SpringBoot 日志文件,JavaEE进阶,spring boot,后端,java,日志

一键开关所有灯:

6.SpringBoot 日志文件,JavaEE进阶,spring boot,后端,java,日志

6.SpringBoot 日志文件,JavaEE进阶,spring boot,后端,java,日志

6.SpringBoot 日志文件,JavaEE进阶,spring boot,后端,java,日志

门面模式的优点

  • 减少了系统的相互依赖,实现了客户端与子系统的耦合关系,这使得子系统的变化会影响到调用它的客户端;

  • 提高了灵活性,简化了客户端对子系统的使用难度,客户端无需关心子系统的具体实现方式,而只需要和门面对象交互即可,

  • 提高了安全性,可以灵活设定访问权限,不在门面对象中开通方法,就无法访问

4.2 SLF4J框架介绍

SLF4]就是其他日志框架的门面.SLF4]可以理解为是提供日志服务的统一API接口,并不涉及到具体的日志逻辑实现.

不引入日志门面

常见的日志框架有log4],logback等.如果一个项目已经使用了log4j,而你依赖的另一个类库,假如是Apache Active MQ,它依赖于另外一个日志框架logback,那么你就需要把logback也加载进去,

6.SpringBoot 日志文件,JavaEE进阶,spring boot,后端,java,日志

存在问题:

  1. 不同日志框架的API接口和配置文件不同,如果多个日志框架共存,那么不得不
    维护多套配置文件(这个配置文件是指用户自定义的配置文件).

  2. 如果要更换日志框架,应用程序将不得不修改代码,并且修改过程中可能会存
    在一些代码冲突.

  3. 如果引入的第三方框架,使用了多套,那就不得不维护多套配置.

引入日志门面

引入门面日志框架之后,应用程序和日志框架(框架的具体实现)之间有了统一的API接口(门面日志框架实现),此时应用程序只需要维护一套日志文件配置,且当底层实现框架改变时,也不需要更改应用程序代码,

6.SpringBoot 日志文件,JavaEE进阶,spring boot,后端,java,日志

SLF4] 就是这个日志门面

总的来说,SLF4]使你的代码独立于任意一个特定的日志API,这是一个对于开发API的开发者很好的思想.

4.3 日志格式的说明

4.3.1日志名称

6.SpringBoot 日志文件,JavaEE进阶,spring boot,后端,java,日志

日志对象的名称,通常情况下,是当前类

6.SpringBoot 日志文件,JavaEE进阶,spring boot,后端,java,日志

改为当前类后

6.SpringBoot 日志文件,JavaEE进阶,spring boot,后端,java,日志

打印日志结果:

6.SpringBoot 日志文件,JavaEE进阶,spring boot,后端,java,日志

6.SpringBoot 日志文件,JavaEE进阶,spring boot,后端,java,日志

缩写对应目录如下:

6.SpringBoot 日志文件,JavaEE进阶,spring boot,后端,java,日志

5.日志颜色设置

1.启动类设置

6.SpringBoot 日志文件,JavaEE进阶,spring boot,后端,java,日志

2.添加 VM options

6.SpringBoot 日志文件,JavaEE进阶,spring boot,后端,java,日志

6.SpringBoot 日志文件,JavaEE进阶,spring boot,后端,java,日志

添加:

-Dspring.output.ansi.enabled=ALWAYS

6.SpringBoot 日志文件,JavaEE进阶,spring boot,后端,java,日志

看结果图可以发现,我们日志信息已经成功改变颜色

6.总结

日志是程序中的重要组成部分,使用日志可以快速的发现和定位问题,Spring Boot内容了日志框架,默认情况下使用的是 info 日志级别将日志输出到控制台的,我们可以通过 lombok 提供的@lf4j 注解和 log对象快速的打印自定义日志.

日志包含6个级别,日志级别越高,收到的日志信息也就越少,我们可以通过配置日志的保存名称或保存目录来将日志持久化.

感谢各位读者的阅读,本文章有任何错误都可以在评论区发表你们的意见,我会对文章进行改正的。如果本文章对你有帮助请动一动你们敏捷的小手点一点赞,你的每一次鼓励都是作者创作的动力哦!😘文章来源地址https://www.toymoban.com/news/detail-858736.html

到了这里,关于6.SpringBoot 日志文件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java EE 突击 9 - Spring Boot 日志文件

    这个专栏给大家介绍一下 Java 家族的核心产品 - SSM 框架 JavaEE 进阶专栏 Java 语言能走到现在 , 仍然屹立不衰的原因 , 有一部分就是因为 SSM 框架的存在 接下来 , 博主会带大家了解一下 Spring、Spring Boot、Spring MVC、MyBatis 相关知识点 并且带领大家进行环境的配置 , 让大家真正用好

    2024年02月13日
    浏览(51)
  • 【JavaEE & Spring】SpringBoot 日志

    为什么要学习日志 对于平常来说, 我们就在使⽤ System.out.print 来打印⽇志了 随着项⽬的复杂度提升, 我们对⽇志的打印也有了更⾼的需求, ⽽不仅仅是定位排查问题. 有时候我们需要将日志持久化, 进行对应的数据分析, 但是 System.out.print 不能很好的满⾜我们的需求, 我们就需要

    2024年01月25日
    浏览(39)
  • 【JavaEE进阶】SpringBoot 配置文件

    整个项目中所有重要的数据都是在配置⽂件中配置的,比如: 数据库的连接信息(包含⽤户名和密码的设置); 项⽬的启动端⼝; 第三⽅系统的调⽤秘钥等信息; ⽤于发现和定位问题的普通⽇志和异常⽇志等。 假如如果没有配置信息,那么 Spring Boot 项目就不能连接和操作数

    2024年02月13日
    浏览(47)
  • 【JavaEE】Spring Boot - 配置文件

    【JavaEE】Spring Boot 开发要点总结(2) 所有重要和必要的数据都是在配置文件中配置的 简洁明了,干净利落,修改方便,相比于xml,更有代码的感觉,功能用处也更多更被重视 例如: 数据库的连接时的需要的信息配置(用户名,url,密码) 项目的启动端口是什么(server.po

    2024年02月14日
    浏览(40)
  • 【JavaEE & Spring】SpringBoot 配置文件

    计算机上有数以千计的配置文件, 使用软件和硬件等都需要有配置文件,在C盘中存在; 配置文件主要是为了解决硬编码带来的问题,把可能发生改变的信息,放在一个集中的地方,当我们启动某个程序时,应用程序从配置文件中读取数据,并加载运行。 SpringBoot 支持并定义了

    2024年01月21日
    浏览(56)
  • 【Spring Boot】了解Spring Boot 的日志文件

    目录 一、日志的作用 二、日志文件的简单使用  1、Spring Boot中的默认日志 2、自定义日志打印 三、日志级别 1、日志级别分类  2、日志级别的设置 3、日志持久化 四、基于LomBok的日志输出 1、安装Lombok插件 2、使用Lombok添加日志(@slf4j) 3、使用Lombok添加getter和setter方法(@Da

    2024年02月13日
    浏览(44)
  • Spring Boot日志文件

    目录 前言🍭 一、日志的作用🍭 1、日志真实使用案例:🍉 二、日志怎么用🍭 1、自定义日志打印🍉 Ⅰ、在程序中得到日志对象🍓  常见的日志框架说明(了解)🍒 Ⅱ、使用日志对象打印日志 🍓 2、日志的级别🍉 Ⅰ、日志级别有什么用?🍓 Ⅱ、日志级别的分类与使用

    2024年01月18日
    浏览(43)
  • JavaEE进阶(6)SpringBoot 配置文件(作用、格式、properties配置文件说明、yml配置文件说明、验证码案例)

    接上次博客:JavaEE进阶(5)Spring IoCDI:入门、IoC介绍、IoC详解(两种主要IoC容器实现、IoC和DI对对象的管理、Bean存储、方法注解 @Bean)、DI详解:注入方式、总结-CSDN博客 目录 配置文件作用 SpringBoot配置文件  配置文件的格式 properties 配置文件说明 properties 基本语法 读取配置

    2024年01月23日
    浏览(67)
  • Spring Boot配置保存日志文件

    springboot日志配置: springboot默认日志是打印再console中的,不会保存在文件中。我们项目上线肯定要保存日志用于分析的。 一、使用xml配置日志保存(并不需要pom配置slf4j依赖,starter里面已经配置了依赖了) 1、在项目的resources目录下创建一个【logback-spring.xml】日志配置文件

    2024年02月11日
    浏览(45)
  • Spring Boot 配置文件和日志

    目录 配置文件格式 properties配置文件说明 1.properties基本语法 2.读取配置文件 3.properties缺点 yml配置文件说明 1.yml基本语法 2.配置不同数据类型 3.字符串特殊情况 4.配置对象 properties和yml对比 日志 日志的使用 日志级别 日志持久化 Lombok Lombok原理解释 Spring中配置文件有很重要的

    2024年01月19日
    浏览(59)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包