SpringBoot动态修改ROOT日志级别后如何禁用RMI相关日志
解决ROOT日志设为TRACE后大量JMX/RMI相关日志的问题
当你把ROOT日志级别设为TRACE时,所有未单独配置级别的日志器都会继承这个级别,这就是sun.rmi.transport、javax.management.remote这类包输出大量DEBUG/TRACE日志的原因。下面是两种快速禁用这些日志的方法:
1. 用Actuator动态调整(无需重启应用)
和你修改ROOT级别一样,通过POST请求单独给这些包设置更高的日志级别(比如WARN或INFO):
- 禁用sun.rmi.transport的低级别日志:
curl -i -X POST -H 'Content-Type: application/json' -d '{"configuredLevel": "WARN"}' http://localhost:8080/loggers/sun.rmi.transport
- 禁用javax.management.remote的低级别日志:
curl -i -X POST -H 'Content-Type: application/json' -d '{"configuredLevel": "WARN"}' http://localhost:8080/loggers/javax.management.remote
如果想彻底关闭这类日志,也可以把级别设为OFF,但更推荐用WARN,避免错过重要的警告信息。
2. 静态配置(永久生效,需重启应用)
在你的Spring Boot配置文件里直接指定这些包的日志级别:
若使用application.properties:
logging.level.sun.rmi.transport=WARN logging.level.javax.management.remote=WARN
若使用application.yml:
logging: level: sun.rmi.transport: WARN javax.management.remote: WARN
这样配置后,即使ROOT级别设为TRACE,这两个包也只会输出WARN及以上级别的日志,不会再产生大量冗余的DEBUG/TRACE信息。
内容的提问来源于stack exchange,提问作者Tannu Bajpai
相关产品推荐
相关产品推荐

