Spring Boot-日志

目录

1.日志带来的好处

2.Spring Boot日志的打印

​编辑

3.日志格式说明

4.日志的级别

5.日志的持久化

6.更简单的实现日志的方式


 

大家平常用平常写项目的时候用过日志嘛?可能有人说用过,有人说没有。但只有敲过代码的人都用过日志,比方说我们的报错信息不就是在控制台告诉我们的嘛。所以日志这个在我们编写代码的过程中很重要。

Spring Boot中内置SLF4J和logback,所以启动项目的时候,控制台会输出一些日志信息

1.日志带来的好处

1.可以发现和定位问题。这样让我们能够更快的找到问题所在处,针对性修改,提高整体效率。

2.记录用户登录日志,可以发现用户是正常登录的还是恶意破坏的。

3.记录系统操作日志,方便后续恢复和定位操作人。

4.记录程序的执行时间,方便为以后优化程序提供数据支持。

2.Spring Boot日志的打印

分为两步:首先得到日志对象(注意!一定要是SLF4J包下面的,不能使用其他包里面的),其次根据得到的日志对象提供的方法打印日志。

(1).得到日志对象,后面日志工厂要得到对应的类,这样才能更直观更方便的定位到问题类。

    //1.获取日志对象
    //方式一,通过类
    private static Logger logger = LoggerFactory.getLogger(TestController.class);

    
    //通过字符串
    
    private static Logger logger = LoggerFactory.getLogger(TestController.class.getName());

(2)使用日志对象调用对象方法打印日志(下面只是调用了部分方法)

        logger.info("我是info");
        logger.error("我是error");
        logger.warn("我是warn");

3.日志格式说明

4.日志的级别

日志级别的设置,是为了让我们更快的看到重要的信息。对于不同的环境下,需要的日志信息不同,有的想看全面一点,有的想看简单一点(就想看报错的)等等,所以这也就用到日志的级别设置了。

日志级别分为:

  • trace:级别最低
  • debug:需要调试的时候的关键信息打印
  • info:普通的打印信息(默认的日志级别)
  • warn:警告,不影响程序的执行,但有需要注意的问题
  • error:错误信息,级别较高的错误日志信息(影响程序执行)
  • fatal:致命的,因代码异常导致程序退出执行的事件(一般都是系统提供给我们使用,程序员不会自己设置这个)

执行顺序如下图:

打印日志的时候会受这个顺序影响,只打印比默认级别高的或相等的。例如:默认级别是Info,那么只会打印info,warn,error,对于级别比Info低的就不会打印。

Spring Boot提供给我们的默认日志级别是info,我们也可以自己设定项目的默认级别,也可以对指定包的级别进行设置。

将代码的默认级别改成了debug
logging:
  level:
    root: debug

5.日志的持久化

上面操作的日志均是输出在控制台,并不具有持久性,每次重启项目,日志就消失了,但我们在实际开发中,是想让日志久存的,怎么做呢?

(1)设置日志的保存路径

在配置文件中设置日志的保存路径,这里需要注意:不要保存到C盘,路径中不要涵盖中文。

logging:
  file:
    path: E:\\study\\spring

然后启动项目,此时在对应路径下面我们可以看到存入了一个文件,名字为spring.log。打开后我们可以看到日志信息。此时我们就实现日志的持久化,将每次项目的执行记录保存了起来。

(2)设置日志的名字

logging:
  file:
    name: springboot.log  //自己随便起个文件名字就可以

此时也可以将日志文件永久保存起来,也会生成一个文件,这个文件存储到了项目中(人家提供的默认路径)

当然我们可以不存储在人家的默认路径中,我们可以在设置名字的时候带上自己的路径

logging:
  file:
    name: E:\\study\\spring\\springboot1.log

日志的大小默认是10MB,我们也可以自己去设置日志的大小,对了大家也不要担心日志超过大小怎么办,不会报错也不会覆盖,而是人家会进行判断,如果超出后,人家会进行划分,名字也就变为spring-1.log,spring-2.log等。

logging:
  logback:
    rollingpolicy:
      max-file-size: 100MB

6.更简单的实现日志的方式

前面我们介绍过lombok,我们也提到过通过注解@slf4j这个注解可以实现日志。所以更简单的实现日志的方式就是通过@slf4j这个注解。

前面我已经提到过怎么使用lombok,这里我就不再介绍了,我就对这个注解来展开了。

 我们编写完上面代码后,启动项目,然后我们查看字节码文件可以发现字节码中没有注解@Slf4j这个注解了,反而多了个我们前面获取对象的语句,这也就表示这个语句是编译的时候将@Slf4j转换过来的,并且对象名字人家定义的是log,所以我们在使用注解来实现日志,在下面我们想使用相关的方法,必须是log来调用。

  • 20
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值