0


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 开发语言

本文转载自: https://blog.csdn.net/yahid/article/details/126959854
版权归原作者 咸鱼吐泡泡 所有, 如有侵权,请联系我们删除。

“SpringBoot日志”的评论:

还没有评论