用途
Log Analyzer 是一个帮助开发者有效分析应用日志的技能指南,目标是诊断问题、追踪错误并理解系统行为。它覆盖日志搜索、模式检测、结构化日志、请求追踪以及与监控工具的集成。
主要能力
日志级别与结构化日志
技能说明了各日志级别的使用时机:ERROR(发生失败需关注)、WARN(意外但已处理)、INFO(正常操作里程碑)、DEBUG(详细诊断信息)、TRACE(非常详细,通常禁用)。
结构化日志部分提供了 Winston(Node.js)和 Pino(高性能)的配置示例,包括时间戳、错误堆栈、JSON 格式、默认元数据(service、environment)、请求上下文子日志器,以及敏感字段脱敏(redact)。
日志搜索与过滤
提供命令行搜索方式,使用 jq 处理 JSON 日志(按级别、用户、时间范围筛选,统计错误类型,提取字段),使用 grep 搜索文本日志(忽略大小写、正则、上下文行)。还包括 Vercel 日志分析命令(实时查看、按级别过滤、按时间范围、按部署过滤、输出 JSON)和 Supabase 日志查询(Postgres 日志、认证审计日志、慢查询)。
模式检测
定义了错误模式分析器接口,包含正则模式、类别、严重级别和建议。内置常见错误模式:连接拒绝(ECONNREFUSED)、超时(timeout/ETIMEDOUT)、内存不足(OOM)、限流(429)、未授权(401)、未找到(404),并提供 categorizeError 函数进行分类。
日志聚合脚本
提供一个 TypeScript 脚本,逐行读取日志文件,统计总条目数、按级别计数、错误消息计数和时间范围,跳过非 JSON 行。
请求追踪
包含 Request ID 中间件(Next.js middleware,读取或生成 x-request-id 并写入响应头)和基于 AsyncLocalStorage 的追踪上下文,提供 withTrace、getTrace 以及带 requestId、userId、duration 的日志函数。
错误追踪集成
提供 Sentry 集成示例(初始化、采样率、beforeSend 过滤、带上下文捕获错误)以及自定义错误边界日志(客户端错误组件,记录到 Sentry 和 console)。
日志分析查询
列出常用排查查询:按用户查找错误、查找最近一小时的错误、按消息分组错误、查找慢请求(>1 秒)、追踪特定请求、统计错误消息模式。还提供 SQL 风格分析(借助 ClickHouse 或 DuckDB):按小时统计错误率、Top 错误消息、最慢端点(含 p95)。
日志保留与清理
提供 logrotate 配置示例(每日轮转、保留 14 份、压缩、延迟压缩等)和自动化清理脚本(按保留天数删除旧日志文件)。
调试检查清单
排查问题时:确定时间窗口、查找相关请求 ID、检查错误峰值、查看受影响用户/端点、检查模式变化、回顾最近部署。日志质量检查:结构化 JSON 格式、合适的日志级别、包含请求 ID、敏感数据脱敏、错误堆栈、相关上下文。
使用方式
该技能以指南形式提供,包含可直接参考的代码示例、命令行片段和配置模板。使用时根据具体场景选择对应章节:搭建日志基础设施参考结构化日志配置;排查问题参考搜索过滤与查询章节;实现追踪参考请求追踪章节;集成错误监控参考 Sentry 章节。
适用场景
- 排查生产问题
- 搭建日志基础设施
- 调试应用错误
- 分析性能问题
- 创建日志分析脚本
- 设置错误追踪
- 实现请求追踪
- 清理日志数据
限制
资料未提供该技能的安装方式、运行环境要求、收费信息或平台支持范围,这些内容暂未提供。