Arthas
对于方法日志,公司针对接口有基础的出参入参和异常的日志打印,使用Api ID定位即可,所以一直没有用上Arthas。 但是对于更深次的方法调用,日志就没有那么详细了。之前听说过使用了Arthas,结合IDEA上的插件体验下来:香。
介绍
Arthas是Alibaba开源的Java诊断工具,深受开发者喜爱。在线排查问题,无需重启;动态跟踪Java代码;实时监控JVM状态。
Arthas支持JDK 6+,支持Linux/Mac/Windows,采用命令行交互模式,同时提供丰富的Tab自动补全功能,进一步方便进行问题的定位和诊断。
用法
Arthas安装及启用参考官方文档:
curl -O https://arthas.aliyun.com/arthas-boot.jar
安装Arthas插件
Watch
选择需要watch的方法
在需要Watch的方法上右击,选择 Arthas Command -> Watch,会自动复制命令:
watch [ClassPath] [MethodName] '{params,returnObj,throwExp}' -v -n 5 -x 3 '1==1'
进入Arthas会话
java -jar arthas-boot.jar
成功启动后可以看到当前服务器上启动的jar包:
选择需要attach的服务
这里选择了[6]服务,输入 6:
输入命令
将上面获取到命令输入:
此时成功Watch目标方法。接下来我们请求该接口:
成功获取到了该方法的请求参数和返回结果。
修改类日志级别
获取类的Hash值
修改类日志级别
退出
输入stop即可退出Arthas:
重新连接上次未退出的Arthas会话
如果不是通过stop命令退出Arthas,下次进入时我们可以重新连接上Arthas:
telnet 127.0.0.1 3658