You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

排查万行以上大型日志文件中错误的实用方法与技术有哪些?

万行级大型日志错误排查实操方案

前置准备:先缩小排查范围

拿到日志先不要逐行翻,先确认几个核心信息,至少能砍掉80%的无效内容:

  • 先明确报错的时间区间、触发异常的业务场景、涉事的服务/模块名,优先把对应时段、对应模块的日志单独摘出来,不用管其他无关的日志内容。
  • 优先筛选高优先级日志级别,直接捞包含ERROR、FATAL、Exception、traceback关键词的内容,INFO、DEBUG级别的日志可以等定位到大致范围之后再按需查看。

常用工具与对应操作

根据你所处的环境选对应的工具,效率至少提10倍:

Linux/macOS 命令行环境(生产排查最常用)

  • 基础关键词过滤用grep,需要看错误上下文的话可以加参数,比如取匹配行前后3行的命令为:grep -A3 -B3 "ERROR" 目标日志文件.log,需要把结果存为单独文件的话末尾加> 错误结果导出文件.txt即可。
  • 要同时匹配多个错误关键词的话用正则匹配:grep -E "ERROR|Exception|timeout|connect failed" 目标日志文件.log
  • 日志量级达到GB级的话,优先用awk按时间切割,比如提取2024-06-10 13:00到13:20的日志命令为:awk '/^2024-06-10 13:00/,/^2024-06-10 13:20/' 目标日志文件.log > 时段过滤结果.log
  • 如果是JSON格式的结构化日志,直接用jq按字段过滤,比如筛选HTTP状态码非200的请求:jq 'select(.status != 200)' 结构化日志文件.log

Windows 桌面环境

不要用系统自带记事本打开大日志,大概率会卡住崩溃,用Notepad++、VS Code这类支持大文件加载、支持正则搜索的编辑器,直接用自带的搜索功能筛选关键词即可。

定位根因的实用技巧

  • 拿到错误日志后先找唯一链路标识,比如请求ID、Trace ID、用户ID,用这个标识反向搜索全量日志,可以直接串起该请求从发起到报错的完整流程,不用凭空猜测上下文。
  • 高频错误优先排查:可以统计同类错误的出现频次,命令行下可以用grep "ERROR" 目标日志文件.log | awk -F ':' '{print $3}' | sort | uniq -c | sort -nr,直接按错误出现次数从高到低排序,高频错误要么是核心根因,要么是影响范围最大的问题。
  • 碰到陌生的错误信息时,优先查对应模块的开发文档、历史故障排查记录,大部分线上报错都不是首次出现,有现成的排查方案可以参考。

注意:不要直接修改生产环境的原始日志文件,所有过滤、分析操作都建议基于日志副本,或者直接把操作结果输出到新文件,避免误改原始日志影响后续溯源。

内容的提问来源于stack exchange,提问作者depotter

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 21:06:08