IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> SpringBoot日志 -> 正文阅读

[Java知识库]SpringBoot日志

日志是程序的重要组成部分,如果没有日志,那么程序出现了错误,我们便无法知晓错误发生在哪里。

日志的功能:

1.快速的定位和排查问题;

2.记录用户信息;

3.记录操作信息,可以帮助恢复数据或者定位责任人;

4.记录程序的执行时间,方便获取优化和分析;

在SpringBoot中它是内置了日志框架的,所以只要我们运行SpringBoot日志就会被打印在控制台上。但是输出的日志并不是开发者自己定义和打印的,还有一个问题就是控制台上面的日志是不能保存的,所以从这两个角度出发,提出来两个问题:1.开发者自定义打印日志;2.日志的持久化

开发者自定义打印日志

自定义打印日志的步骤:

1.在程序中得到日志对象;?

2.使用日志对象的相关语法输出要打印的对象

上面在获取日志对象时,需要使用日志工厂LoggerFactory,日志工厂需要将每一个类的类型传递进去,这样才知道日志的归属类,才能更方便、更直观定位到文体类。这里的Logger对象是在org.slf4j包小面的。?

日志的持久化?

日志持久化的方式有两种:

方式一:设置日志的保存路径?

#配置日志目录
logging:
  file:
    path: C:\Users\86158\Desktop\SSM框架\ssm-framework\

?上面这段代码的意思就是在指定路径下面创建spring.log日志文件

执行程序以后找到指定文件:

默认情况下springboot会有一个最大的日志大小限制,如果日志的文件大于默认的最大日志大小,那么springboot会从新启动一个日志?

方式二:设置日志文件的文件名

#方式二:设置日志文件的文件名
logging:
  file:
    name: spring.log

上面因为没有指定保存路径,所以它默认是保存在当前项目所在的目录里面:

当然上面也可以指定全路径名?

使用lombok的方式来输出日志

当我们现在每一个类里面都要输出打印日志时,每回都去执行

private static Logger logger = LoggerFactory.getLogger(类名.class);这个命名比较麻烦,为了更加方便的输出打印日志,就可以使用lombok的方式:

一:首先添加lombok框架,如果是在创建SpringBoot项目时就添加过lombok框架这里就不用再添加了,pom.xml文件中可以检查自己有没有添加该框架

我这里是添加过了的,如果没有添加的话可以手动添加,这里推荐一个插件,使用该插件可以很方便的添加各种框架:

去设置里面的插件中下载EditStarters这个插件,下载好以后安转插件然后重启IDEA

然后在你的IDEA窗口中右键,选择Generate,然后点击刚才安转好的插件,再点击OK

然后你就可以输入框架的名称,双击响应的框架到项目中

二:使用@Slf4j注解输出日志

lombok的原理?

lombok框架他其实就是对代码的一次简化,让程序员不用再重复的编写那些冗余的代码,而是在编译器编译期间lombok自己将那些代码添加进程序。

?

通过看上面使用lombok框架来打印日志的字节码文件就可以看出,他其实就是一次代码的简化操作:

?

lombok里面还有更多的注解:

注解                            作用
@Getter                        自动添加getter方法
@Setter                        自动添加setter方法
@ToString                      自动添加toString方法
@EqualsAndHashCode             自动添加equals和hashCode方法

组合注解                         作用
@Data                           @Getter+@Setter+@ToString+@EqualsAndHashCode
@Slf4j                          添加一个名为log的日志,使用slf4j

?

日志结构?

我们只有在认识清楚日志结构以后才能准确定位程序中的问题所在。

?

日志的级别?

在SpringBoot项目中日志一共有6个级别,它们的关系如下图:

?

trace:微量,少许的意思,级别最低;

debug:需要调试的时候关键信息打印;

info:普通的打印信息;

warn:警告,不影响使用,但需要注意的问题;

error:错误信息,级别较高的错误日志信息;

fatal:致命的,因为代码异常导致程序退出执行的事件?

日志使用?

一:日志级别配置只需要在配置文件中设置logging.level配置项即可:

#配置日志级别
logging:
  level:
    root: info

对上面的配置文件做出解释:logging表示一个这个配置文件是一个日志,level表示日志级别的层级,而root则表示要作用的路径,这里表示根路径,当然也可以配置为其他路径,比如像下面这样

logging:
  level:
    com:
      example:
        springboot:
          controller: info

info则表示配置的日志级别是普通日志。

二:打印日志

?

?

可以看到因为我配置的日志级别是info的,所以打印的时候它只打印了比他高的日志级别的信息,而比它低的日志级别的信息则没有被打印。?

?

?

?

?

?

?

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-09-24 20:42:44  更:2022-09-24 20:43:45 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 8:53:22-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码