springboot启动不打印日志信息_Spring Boot 系列:日志动态配置详解

本文介绍了如何在Spring Boot应用运行时动态调整日志级别,包括使用Spring Boot Actuator的Logger REST接口、配置文件扫描以及Arthas等方式。文章还探讨了LoggingSystem的加载原理和相关组件的作用。
摘要由CSDN通过智能技术生成

eb57dd922297d129fde06eccad94f57a.png
世界上最快的捷径,就是脚踏实地,本文已收录 架构技术专栏关注这个喜欢分享的地方。

开源项目:

  • 分布式监控(Gitee GVP最有价值开源项目 ):https://gitee.com/sanjiankethree/cubic
  • 摄像头视频流采集:https://gitee.com/sanjiankethree/cubic-video

一、简介

Spring Boot 版本: 2.3.4.RELEASE

不知道大家有没有过当线上出现问题的时候,需要某些DEBUG日志,但奈何当前使用时INFO。

如果想启用DEBUG就需要重新打包发版,但某些场景下重启有可能问题就不会复现了,真是脑阔疼啊。

今天我们就来说下Spring Boot 下的日志配置动态调整,让你的日志级别随心而动。

Spring Boot的日志

a3b3b220b34b17b3393478e3ed5e0e07.png

在Spring Boot 内部使用的其实是Commons Logging, 而基于Spring Boot的配置加载机制为我们提供了Java Util Logging、Log4j2、Logback几种日志方式。

Logback是其默认的日志框架,如果没有特殊的必要真不建议更换了。(不要说性能了)

日志格式

不要小瞧格式这种东西,在实际应用的时候是贼拉重要的一件事。

不知道大家的公司有没有统一的日志基础组件,当然没有也大概会有统一的日志配置文件吧。

想想如果你的日志格式不统一的话,如果每个项目都有自己的风格的话,你叫你的运维小伙伴怎么帮你切分日志?帮你报警呢?那真是正则写到死,完全靠爱发电了。(比如我们使用的Loghub 不统一要被运维打死的)

来看下我们的日志格式配置,这里只放PATTERN

-|%d{yyyy-MM-dd HH:mm:ss.SSS}|%-5level|%X{tid}|%thread|%logger{36}.%M:%L-%msg%n

先解释下各个位置:

  • %d{yyyy-MM-dd HH:mm:ss.SSS}:时间
  • %-5level : 日志级别
  • %X{tid}: 我们自定义的分布式追踪ID
  • %thread: 线程
  • %logger{36}.%M:%L :class的全名(36代表最长字符).信息 行号
  • %msg%n : 输出信息 换行

这里不知道大家能否理解前面有一个 -|是为了什么? 其实是为了在正则切分的时候方便区分换行的日志,如异常堆栈的信息。

几个知识点

再说几个其他Spring Boot使用的小点,我们就来进入正题

  • 在这里Logback 没有FATAL 级别,被归到ERROR里面了
  • 可以在application.properties里面配置 debug=true来开启debug模式,你也可以配置trace=true 开启 trace模式
  • 可以再application.properties里使用logging.level.<logger-name>=<level>这种格式来配置各种日志级别,比如org.hibernate级别被设置为ERROR logging.level.org.hibernate=error
  • 日志组的概念,如果这么一个个配置烦死了,可以设定一个组给它整体配置。如:
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值