Mac 怎么查看多行异常日志?找到错误,展开完整调用记录
搜到了 ERROR,但后面还有十几行函数调用,只复制第一行又说不清问题。LogStudio 可以把识别到的多行异常放到事件详情中阅读,方便你从错误名称继续看到调用记录和原因。
调用堆栈就是程序出错时记录的函数调用过程。它常常跨很多行,因此查错误时要把这一段一起看。
搜索异常名称,跳到出错的位置
打开日志,搜索请求编号,或者直接搜索异常名称,例如 SocketTimeoutException。点击结果到达对应位置,再选中相关记录,展开详情中的“事件”页签。
LogStudio 识别常见 Java、Python、Go、Node.js 和 .NET 文本异常。具体格式能被识别时,事件详情会帮助你把连续调用记录放在一起阅读。
Java:继续看 Caused by 后面的原因
下面是简化示例:
java.lang.IllegalStateException: cannot create order
at example.OrderService.create(OrderService.java:42)
Caused by: java.net.SocketTimeoutException: read timed out
at example.PaymentClient.read(PaymentClient.java:87)
第一行只说订单创建失败,Caused by 后面补充了读取超时。把整段看完,比只把顶层错误发给同事更有帮助。代码文件和行号也能给开发者提供继续调查的位置。
Python:别漏掉最后一行
Python 的异常通常以 Traceback 开头,最后一行说明异常类型和错误消息。例如 JSONDecodeError 会描述解析失败的位置。查看事件详情时,从开头的调用过程一直读到异常结尾,就不用在很多相似行之间反复寻找。
如果一段记录没有被完整识别,也可以回到原文件继续阅读。搜索结果的前后文展开适合快速查看附近内容,特别长的异常则需要多看一些。
看完这一段,再回到相关请求
异常前面可能记录了连接目标、重试或请求参数。继续搜索同一个请求,或者直接向前拖动浏览,就能把前面的动作与这次错误联系起来。返回和前进方便你重新查看刚才的位置。
需要交给同事时,在事件详情中复制异常内容,附上来源文件和原始行号。日志行号与 OrderService.java:42 这样的代码行号分别保留,方便对方找日志、也找代码。
本文讨论应用输出的文本异常;macOS 原生崩溃报告另用相应调试工具。搜索步骤见大日志定位指南,下载入口见 LogStudio。
常见问题
一条错误占很多行,怎么一起看?
搜索错误后选中相关记录,在识别到多行异常时查看事件页签,就可以阅读这一段调用记录。
支持哪些常见异常格式?
支持 Java、Python、Go、Node.js 和 .NET 等常见文本异常的识别与展示。
可以复制异常记录给同事吗?
可以。在事件详情中复制内容,并附上来源文件和原始行号,方便对方继续查看。