这篇文章主要介绍了springboot如何动态调整日志级别,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
springboot使用的common-logging,底层兼容各种日志框架如,log4j2,slf4,logback等,默认底层使用的是logback,我们可以去除logback的依赖,引入log4j2的starter,
如下:
(此配置不限于log4j2,也适用于其他日志框架)
在resources目录下加入log4j2的xml配置文件,默认spring-boot会加载classpath下面的名为log4j2.xml,或log4j2-file.xml的日志配置文件。
也可以在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"
(适用于生产环境)
spring-boot-actuator是springboot的一个监控工具,它可以以http或JMX的方式暴露一些endPoint,内置的endpoint有 health,info,beans,loggers等。
我们可以通过loggers来动态调整日志级别,无需重启服务。
如果是想使用webEndPoint的话,项目必须包含web-starter相关的依赖,因为actuator 的httpEndPoint是以mvc的方式集成的。
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency>
management: endpoints: web: exposure: include: loggers
URI默认是 /actuator+endpoint+包名
$ curl 'http://localhost:8080/actuator/loggers/com.example' -i -X POST \ -H 'Content-Type: application/json' \ -d '{"configuredLevel":"debug"}'
原理可以看LoggersEndPoint的实现
有个loggingApplicationListener的监听器,监听了spring的事件,读取了spring容器中的日志配置,进行了日志的初始化。
感谢你能够认真阅读完这篇文章,希望小编分享的“springboot如何动态调整日志级别”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。