mcpField
L
log-error-digest

log-error-digest

github.com/zebbern云与 DevOps4.7k40 次安装1 天前更新
代码仓库

关于 log-error-digest

log-error-digest 是用于分析日志文件的命令行技能,可聚类相似错误并生成频次和时间分布报告。适合排查应用及 Nginx 日志中的错误。

主要功能

  1. 01错误消息归一化与聚类
  2. 02按类型统计错误频次和严重性
  3. 03按小时及日期展示错误分布
  4. 04自动识别 JSON、syslog 和 Nginx 格式
  5. 05按级别和时间筛选并导出 JSON

适用场景

  1. 01查找日志中反复出现的错误根因
  2. 02定位错误高发时段
  3. 03筛选 ERROR 日志并生成 JSON 报告

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/zebbern/claude-code-guide --skill log-error-digest

安装后在 Claude Code 中输入/log-error-digest确认已加载。

附带文件LICENSEscripts/analyze_logs.py

详细介绍

日志错误摘要

自动分析日志文件,生成错误聚类、频率统计和时间分布报告。

功能

  • 错误聚类:通过规范化动态部分(IP、UUID、数字等),将相似的错误消息归类,以识别根本原因
  • 频率统计:按严重程度排序,统计各类错误的出现次数
  • 时间分布:按小时和日期显示错误分布,帮助确定错误高发时段

支持的日志格式

格式描述自动检测
JSON每行一个 JSON 对象,包含 timestamp/level/message 字段以 { 开头
syslogRFC 3164 格式,例如 Jan 1 12:00:00 host proc[pid]: msg以月份名称开头
Nginx访问日志或错误日志格式以 IP 或日期/路径模式开头

用法

python scripts/analyze_logs.py <log_file_path> [options]
参数
参数描述默认值
log_file日志文件路径(必填)-
--format日志格式:auto/json/syslog/nginxauto
--top显示排名前 N 的错误簇20
--output将结果导出到 JSON 文件仅终端输出
--level按日志级别筛选(例如 ERROR、WARN)所有级别
--since仅分析此时间之后的日志(ISO 格式)不限
--until仅分析此时间之前的日志(ISO 格式)不限
示例
# Auto-detect format and analyze the entire log file
python scripts/analyze_logs.py /var/log/app.log

# Specify Nginx format, show only Top 10 errors
python scripts/analyze_logs.py /var/log/nginx/error.log --format nginx --top 10

# Filter ERROR level only, export JSON report
python scripts/analyze_logs.py app.log --level ERROR --output report.json

# Analyze logs within a specific time range
python scripts/analyze_logs.py app.log --since 2024-01-01T00:00:00 --until 2024-01-02T00:00:00

输出

终端输出
=======================================================
              Log Analysis Report
=======================================================

📊 Overview
  Detected format: json
  Total lines:     15,234
  Parsed:          15,100 (parse failures: 134)
  Matched entries: 12,800
  Errors:          2,341
  Time range:      2024-01-01 00:03:12 ~ 2024-01-01 23:58:45

🔴 Top Error Clusters (47 total)
  #1   [×523  ] Connection refused to database at 10.0.1.5:5432
       First seen: 2024-01-01T00:15:30  Last seen: 2024-01-01T23:45:12
  #2   [×312  ] Timeout waiting for response from user-service after 30000ms
       First seen: 2024-01-01T02:10:00  Last seen: 2024-01-01T22:30:45
  #3   [×198  ] File not found: /data/uploads/img_99421.png
       First seen: 2024-01-01T08:00:00  Last seen: 2024-01-01T20:15:33
  ...

⏰ Time Distribution (by hour)
  00:00  █████░░░░░░░░░░░░░░░  42
  01:00  ██░░░░░░░░░░░░░░░░░░  18
  ...
  14:00  ████████████████████  523
  ...

📅 Time Distribution (by date)
  2024-01-01  ████████████████████  2,341
JSON 输出

使用 --output 参数导出结构化 JSON 报告,以便进一步处理或集成到监控系统中。

评论

支持 Markdown