1.环境
jdk:1.8
arthas-boot version: 3.7.2 这里直接下载的最新的
2.下载arthas-boot.jar
打开cmd,cd到你要下载的目录,输入如下:
curl -O https://arthas.aliyun.com/arthas-boot.jar
下载后可随意移动
3.运行arthas-boot.jar
先看一下这篇文章,如何启动重复的就不介绍了
java1.8运行arthas-boot.jar运行报错解决
4.使用arthas
先编写一个需要测试类
package com.example.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class TestController {
@GetMapping("/test1")
public String test1(int i) {
if(i==1){
throw new RuntimeException("测试错误");
}
return "test"+i;
}
}
使用watch监听
这里已经运行了arthas-boot.jar,输入如下内容:
watch com.example.controller.TestController test1 '{params,returnObj,throwExp}' -x 3
watch: 命令
com.example.controller.TestController: 需要监听的全路径类名
test1 : 方法名
'{params,returnObj,throwExp}’ : 日志需要打印的参数,params:入参,returnObj:返回数据,throwExp:异常信息。
-x 3: 要追踪的方法调用层次深度为3。
如果语法正确,类名及方法名都没有问题,开始监听此方法。
测试
当传参为非1时,不报错。
arthas监听到如下:
如果时i=1,报错
也被监听到,而打印报错信息,这里控制台编码问题中文乱码,修改一下控制台编码就行,自行修改。
退出watch
ctrl+c 即可退出刚才监听
退出arthas
建议使用stop,不然后台还是运行,不能继续通过pid运行arthas.