一般情况下我们项目的日志输出级别为info,当遇到线上问题需要排查时,info级别并不一定能提供足够的信息,这时我们需要使用debug级别的日志信息来定位问题。如果通过修改配置文件来更改日志级别,这需要重启应用,非常的麻烦,甚至可能影响到业务。有没有办法能快速动态的修改日志级别呢?
阿里的java调试公决arthas可以帮助我们实现动态修改日志级别。
这款工具使用也很简单,只需要执行jar包就可以运行,通过https://arthas.aliyun.com/arthas-boot.jar下载jar包,下载后执行
java -jar arthas-boot.jar就可以运行该工具了
运行后会列出当前机器的所有java进程,选择你需要控制的java进程编号,之后进入启动界面
输入logger
查看当前进程的looger信息
可以看到当前名为ROOT的logger日志级别为info
我们使用logger --name ROOT --level debug命令修改ROOT logger的日志级别为debug
再查看logger信息,已经改为debug了,应用后台查看日志也已经能看到debug日志了
到这里我们就完成了简单的动态修改生产在线应用的日志级别,是不是很快捷方便。当然这个工具还可以进行更复杂的在线修改日志的功能,具体详情可以参考官方文档https://arthas.aliyun.com/doc/logger.html