springboot动态调整日志级别
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.xmllevel:com.ly: debugorg.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的实现
4.spring boot日志初始化原理
有个loggingApplicationListener的监听器,监听了spring的事件,读取了spring容器中的日志配置,进行了日志的初始化。
springboot动态调整日志级别相关推荐
- SpringBoot动态修改日志级别
前言 为了减少日志频繁打印带来的性能影响,线上环境设置的日志级别一般都相对较高.而当出现生产问题需要排查的时候,可能需要适当降低日志级别(例如DEBUG)来打印更多的日志信息帮助定位问题. 传统的做法 ...
- springboot 在线调整日志级别
WEB应用项目生产环境一般日志级别是ERROR级别,但有时候碰到有问题的时候想看一下DEBUG级别的日志,可能需要项目重启,单个项目还好说,像现在微服务的项目动不动就十几个服务根本无从下手,遂研发出在 ...
- springboot 日志级别_SpringBoot实战(十三):Admin动态修改日志级别
强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan [前言] 之前关于线上输出日志一直有个困惑:如何可以动态调整的日志级别,来保证系统在正常运行时性 ...
- SpringBoot实战(十三):Spring Boot Admin 动态修改日志级别
强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan [前言] 之前关于线上输出日志一直有个困惑:如何可以动态调整的日志级别,来保证系统在正常运行时性 ...
- 日志级别_SpringBoot实战(十三):Admin动态修改日志级别
强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan [前言] 之前关于线上输出日志一直有个困惑:如何可以动态调整的日志级别,来保证系统在正常运行时性 ...
- 求你了,别再随便打日志了,教你动态修改日志级别!
GitHub 19k Star 的Java工程师成神之路,不来了解一下吗! 之前写过一篇文章<明明有自动清理,日志还是把我的服务干爆了!>,介绍过一次大促故障,是因为日志量激增,导致服务器 ...
- glog 设置日志级别_如何动态改变日志级别
前言 关于日志级别,大部分项目可能都设置为info级别,当然也可能有一些追求性能或者说包含很多敏感信息的项目直接将级别设置为warn或者error:这时候如果项目中出现一些未知异常,需要用到很详细的日 ...
- 如何动态改变日志级别
前言 关于日志级别,大部分项目可能都设置为info级别,当然也可能有一些追求性能或者说包含很多敏感信息的项目直接将级别设置为warn或者error:这时候如果项目中出现一些未知异常,需要用到很详细的日 ...
- Spring Boot 2动态修改日志级别
本文基于:Spring Boot 2.1.3,理论支持Spring Boot 2.x所有版本. 作为程序猿,定位问题是我们的日常工作,而日志是我们定位问题非常重要的依据.传统方式定位问题时,往往是如下 ...
最新文章
- linux c 头文件,linux下的头文件 及C/C++头文件 一览表
- 在微信小程序中调用本地接口
- 一位大学教授学习数学的体会
- idea package自动生成_懒人必备,IntelliJ IDEA中代码一键生成
- linux .net 控制台应用程序,VisualStudioCode创建的asp.net core控制台程序部署到linux
- java编写一个程序_计算已知长和宽的长方形的周长,请教一下大佬们,我们java留了一个作业,编写程序,定义一个接口Comput,声明计算周长和面积的方法...
- LeetCode 315. 计算右侧小于当前元素的个数(Count of Smaller Numbers After Self)
- 集邦咨询:预估今年GaN功率元件营收达8300万美元
- 大数据之-Hadoop3.x_MapReduce_WordCount案例集群运行---大数据之hadoop3.x工作笔记0093
- Kubernetes 弃用 Docker !
- 用cocos2d-android开发android游戏时调用box2d中的native本地函数问题
- OEA中的AutoUI重构(1) - Command自动生成
- Codeforces 464E. The Classic Problem
- 技术指南 | 使用 mPaaS 配置 SM2 国密加密指南
- VSS2005下载地址 VS6.0d下载地址(软件+我的教程)
- 编写函数,求字符串的长度
- ffmpeg没有bin文件
- mac系统安装Anaconda后再打开终端自动进入Anaconda环境
- 如何编写快速高效的SQL查询(一)——MySQL8.0优化器查询优化处理与样例
- 员工管理系统(服务器和客户端)