洞察如何通过低成本家政服务app实现高效管理与数字化转型
1292
2022-12-01
springboot动态调整日志级别的操作大全
目录1.springboot使用log4j22.指定日志配置文件和日志等级3.通过springboot-actuator动态调整日志级别3.1 在pom文件中引入依赖3.2 在配置文件中开启loggers的endPoint端点3.3 发起http请求改变日志级别4.spring boot日志初始化原理
1.springboot使用log4j2
springboot使用的common-logging,底层兼容各种日志框架如,log4j2,slf4,logback等,默认底层使用的是logback,我们可以去除logback的依赖,引入log4j2的starter,
如下:
2.指定日志配置文件和日志等级
(此配置不限于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"
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文件中引入依赖
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/jsonnePNMusw' \
-d '{"configuredLevel":"debug"}'
原理可以看LoggersEndPoint的实现
4.spring boot日志初始化原理
有个loggingApplicationListener的-,监听了spring的事件,读取了spring容器中的日志配置,进行了日志的初始化。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~