服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - Java教程 - springboot动态调整日志级别的操作大全

springboot动态调整日志级别的操作大全

2022-02-20 11:53forwardMyLife Java教程

这篇文章主要介绍了springboot动态调整日志级别的方法,本文通过实例图文相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

1.springboot使用log4j2

springboot使用的common-logging,底层兼容各种日志框架如,log4j2,slf4,logback等,默认底层使用的是logback,我们可以去除logback的依赖,引入log4j2的starter,
如下:

springboot动态调整日志级别的操作大全

 

2.指定日志配置文件和日志等级

(此配置不限于log4j2,也适用于其他日志框架)

在resources目录下加入log4j2的xml配置文件,默认spring-boot会加载classpath下面的名为log4j2.xml,或log4j2-file.xml的日志配置文件。

springboot动态调整日志级别的操作大全

也可以在spring的配置文件中指定需要加载的日志配置文件,以及动态调整各个目录的日志等级

logging:
config: classpath:log4j2.xml
level:
  com.ly: debug
  org.springframework : info

该参数可以通过系统参数,或启动参数,覆盖jar内的配置项。

java -jar -Dlogging.config="xxx" test.jar
java -jar test.jar --logging.config="xxx"

 

3.通过springboot-actuator动态调整日志级别

(适用于生产环境)

spring-boot-actuator是springboot的一个监控工具,它可以以http或JMX的方式暴露一些endPoint,内置的endpoint有 health,info,beans,loggers等。
我们可以通过loggers来动态调整日志级别,无需重启服务。

如果是想使用webEndPoint的话,项目必须包含web-starter相关的依赖,因为actuator 的httpEndPoint是以mvc的方式集成的。

3.1 在pom文件中引入依赖

<dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-actuator</artifactId>
      </dependency>

3.2 在配置文件中开启loggers的endPoint端点

management:
endpoints:
  web:
    exposure:
      include: loggers

3.3 发起http请求改变日志级别

URI默认是 /actuator+endpoint+包名

$ curl 'http://localhost:8080/actuator/loggers/com.example' -i -X POST \
  -H 'Content-Type: application/json' \
  -d '{"configuredLevel":"debug"}'

原理可以看LoggersEndPoint的实现

springboot动态调整日志级别的操作大全

 

4.spring boot日志初始化原理

springboot动态调整日志级别的操作大全

有个loggingApplicationListener的监听器,监听了spring的事件,读取了spring容器中的日志配置,进行了日志的初始化。

到此这篇关于springboot动态调整日志级别的文章就介绍到这了,更多相关springboot调整日志级别内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/lucky_ly/article/details/120693006

延伸 · 阅读

精彩推荐