arthas
arthas copied to clipboard
need help for watch command ognl expression
如何在 watch 命令中打印 returnObj 的属性。 watch 命令给 returnObj 一个用户列表。我只想打印用户对象的“名称”字段。
watch com.xxx.XXXX 监控方法名 "returnObj.{名称}" 例如: watch com.example.Test test "returnObj.{name}"
但是 returnObj 是 List 的一个对象。如何迭代并仅打印名称字段?
按照我之前给的命令输出的,是不是你想要的结果?
所以,如果我尝试这个命令:
观看 com.demo.UserDetailsService getUser“{params,returnObj.name}”
我收到以下错误:
ognl.NoSuchPropertyException: java.util.ArrayList.name,访问 /dev/null/logs/arthas/arthas.log 了解更多详情。
watch com.xxx.XXXX 监控方法名 "returnObj.{名称}" 例如: watch com.example.Test test "returnObj.{name}"
这实际上有效,非常感谢。只是一个天真的问题,我如何使用 watch 命令扩展我想打印的对象树的深度。当前限制为 4,是否有打印更多嵌套结构的方法。还有在文件中输出 watch 命令日志的方法吗?
1.watch命令最大深度是4,这个是硬编码的,需要通过修改源代码,然后重新自行编译打包。需要修改com.taobao.arthas.core.view.ObjectView这个类中的MAX_DEEP。 2.在文件中输出watch命令的日志,可以通过执行options save-result true。日志会输出到{user.home}/logs/arthas-cache/result.log这个文件中,详细情况请看文档,以下是英文文档地址https://arthas.aliyun.com/en/doc/save-log.html