SpringBoot日志文件

文章目录:一.日志的作用

                     二.日志的使用(1)系统默认日志输出

                                               (2)自定义日志输出

                    三.日志级别的分类   (1)默认级别

                                                       (2)自定义级别

                     四.日志的持久化    (1)指定日志存储目录

                                                       (2)指定日志保存文件名

                       五.更简单的方式的日志输出(1)添加lombok依赖

                                                                       (2)类外添加@Slf4j

                                                                          (3)Lombok原理解释

                       

一.SpringBoot的日志的作用:

(1)如果程序出现bug,通过日志,可以更好的定位和排查问题

   (2)  记录用户登录日志,可用户分析是否是正常用户还是恶意破解用户

 (3) 记录系统操作日志,可以更好地恢复数据和定位操作人

  (4) 记录程序执行的时间,为优化数据提供支持

二.日志的使用

SpringBoot项目内置了框架,项目启动时就会默认日志输出

 我们如何自定义日志呢?

首先呢?我们先通过Logger类来获取日志对象

 private static final Logger log=LoggerFactory.getLogger(Hello.class)

把这个对象设置为final就防止类外这个对象被修改了

然后我们通过log这个对象来调用各种打印方法

@RestController
@ResponseBody
public class Hello {
    private static final Logger log=LoggerFactory.getLogger(Hello.class);
    
    @PostConstruct
    public void doPostConstruct() {
        log.trace("trace");
        log.debug("debug");
        log.info("info");
        log.warn("warn");
        log.error("erro");


    }
}

 我们发现trace、degug并没有打印,这是为什么呢?这里就涉及到日志级别问题了

三.日志级别的分类:

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

2.debug:调试的时候打印关键信息

3.info: 普通的打印信息(默认日志级别)

4.warn: 打印警告信息

5.error: 打印错误信息

6.fatal: 致命错误,代码异常导致程序退出执行

日志级别的顺序:

打印日志的时候只会打印当前日志级别及以上的信息,我们默认的是Info级别,所以上文中打印的时候就不会打印 trace和debug了。

那么我们可不可以设置日志级别呢?其实是可以的

我们可以在配置文件里设置日志级别:

logging:
  level:
    root: warn

当我们设置为warn的时候 我们再来看一下日志的打印信息

我们看到只能打印warn和error了 

 而且日志级别的设置可以具体到包:

logging:
  level:
    root: warn
    com.example.demo:
      controller: trace
      text: info

这里表示com.example.demo包底下的子包controller里面的类日志级别为trace、com.example.demo包底下的子包trext里面的类的级别设置为text

四.日志持久化:我们看到以上的信息都是输出在控制台上,在生产环境上我们需要把它长久下的保存下来 。

想要日志持久化:我们需要在配置文件里指定日志的存储目录或指定日志保存文件名

(1)指定日志的存储目录

 当我们运行这个项目后我们会发现生成一个spring文件

 里面就存放着具体的日志信息

 (2)指定日志保存文件名

logging:
  level:
    root: warn
    com.example.demo:
      controller: trace
      text: info
  file:
    path: D://123//student//
    name: D://123//student//spring-boot.log

 五.更简单的日志输出:

1.添加lombok依赖

2.类外添加@Slf4j

 3.Lombok原理解释

我们找到target文件

 我们发现字节码文件里多了一行

这说明代码在编译的时候Lombok把log对象的声明放进了代码中

Lombok作用如下图:


 

 我们再来看一下Lombok的一些其他注解

@Getter
@Setter
@ToString
@AllArgsConstructor
public class Student {
    public String name;
    public int age;
}

即使我们再类里面没有写getter、setter、toString()、构造方法

我们再打开对应的字节码 文件看一下

 我们发现类里面对这些方法都有声明。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值