闲社服务运行正常AI智能体自动化平台
l

日志分析器

技能标识:log-analyzer

Parse, search, and analyze application logs across formats. Use when debugging from log files, setting up structured logging, analyzing error patterns, correlating events across services, parsing stack traces, or monitoring log output in real time.

作者:admin | 来源记录:ClawHub
登记来源
ClawHub
版本
V 1.0.0
检测标记
后台标记通过
免费
免费获取
5
收藏
来源与检测标记为平台登记信息,并不代表已展示可复核的检测报告。使用前请核对版本、依赖和所需权限,建议先在隔离环境中运行。
概述
安装方式
版本历史

日志分析器

日志分析器

解析、搜索和调试应用程序日志。涵盖纯文本日志、结构化JSON日志、堆栈跟踪、多服务关联和实时监控。

使用场景

  • - 从日志文件中调试应用程序错误
  • 搜索日志中的特定模式、错误或请求ID
  • 解析和分析堆栈跟踪
  • 在应用程序中设置结构化日志记录(JSON)
  • 关联多个服务或日志文件中的事件
  • 开发期间实时监控日志
  • 生成错误频率报告或摘要

快速搜索模式

查找错误和异常

bash

日志文件中的所有错误


grep -i error\|exception\|fatal\|panic\|fail app.log

带3行上下文的错误

grep -i -C 3 error\|exception app.log

过去一小时内的错误(ISO时间戳)

HOUR_AGO=$(date -u -d 1 hour ago +%Y-%m-%dT%H:%M 2>/dev/null || date -u -v-1H +%Y-%m-%dT%H:%M) awk -v t=$HOUR_AGO $0 ~ /^[0-9]{4}-[0-9]{2}-[0-9]{2}T/ && $1 >= t app.log | grep -i error

按类型统计错误数量

grep -oP (?:Error|Exception): \K[^\n]+ app.log | sort | uniq -c | sort -rn | head -20

从访问日志中查找HTTP 5xx错误

awk $9 >= 500 access.log

按请求ID或关联ID搜索

bash

追踪单个请求在日志条目中的记录


grep req-abc123 app.log

跨多个文件搜索

grep -r req-abc123 /var/log/myapp/

跨多个服务搜索(带文件名前缀)

grep -rH correlation-id-xyz /var/log/service-a/ /var/log/service-b/ /var/log/service-c/

时间范围过滤

bash

在两个时间戳之间(ISO格式)


awk $0 >= 2026-02-03T10:00 && $0 <= 2026-02-03T11:00 app.log

最后N行(tail)

tail -1000 app.log | grep -i error

从特定时间开始(GNU date)

awk -v start=$(date -d 30 minutes ago +%Y-%m-%dT%H:%M) $1 >= start app.log

JSON / 结构化日志

使用jq解析

bash

美化打印JSON日志


cat app.log | jq .

按级别过滤

cat app.log | jq select(.level == error)

按时间范围过滤

cat app.log | jq select(.timestamp >= 2026-02-03T10:00:00Z)

提取特定字段

cat app.log | jq -r [.timestamp, .level, .message] | @tsv

按级别统计

cat app.log | jq -r .level | sort | uniq -c | sort -rn

按嵌套字段过滤

cat app.log | jq select(.context.userId == user-123)

按消息分组错误

cat app.log | jq -r select(.level == error) | .message | sort | uniq -c | sort -rn

提取请求持续时间统计

cat app.log | jq -r select(.duration != null) | .duration | awk {sum+=$1; count++; if($1>max)max=$1} END {print count=count, avg=sum/count, max=max}

解析混合格式日志(JSON行与纯文本混合)

bash

仅提取有效的JSON行


while IFS= read -r line; do
echo $line | jq . 2>/dev/null && continue
done < app.log

或者使用grep查找以{开头的行

grep ^\s*{ app.log | jq .

堆栈跟踪分析

提取和去重堆栈跟踪

bash

提取Java/Kotlin堆栈跟踪(以Exception/Error开头,后跟\t行)


awk /Exception|Error/{trace=$0; while(getline && /^\t/) trace=trace\n$0; print trace\n---} app.log

提取Python回溯

awk /^Traceback/{p=1} p{print} /^[A-Za-z].*Error/{if(p) print ---; p=0} app.log

提取Node.js堆栈跟踪(Error + 缩进的at行)

awk /Error:/{trace=$0; while(getline && /^ at /) trace=trace\n$0; print trace\n---} app.log

去重:按根因分组(跟踪的第一行)

awk /Exception|Error:/{cause=$0} /^\tat|^ at /{next} cause{print cause; cause=} app.log | sort | uniq -c | sort -rn

Python回溯解析器

python
#!/usr/bin/env python3
从日志文件中解析Python回溯并按根因分组。
import sys
import re
from collections import Counter

def extract_tracebacks(filepath):
tracebacks = []
current = []
in_trace = False

with open(filepath) as f:
for line in f:
if line.startswith(Traceback (most recent call last):):
in_trace = True
current = [line.rstrip()]
elif in_trace:
current.append(line.rstrip())
# 异常行结束回溯
if re.match(r^[A-Za-z]\w*(Error|Exception|Warning), line):
tracebacks.append(\n.join(current))
in_trace = False
current = []
return tracebacks

if name == main:
filepath = sys.argv[1] if len(sys.argv) > 1 else /dev/stdin
traces = extract_tracebacks(filepath)

# 按异常类型和消息分组
causes = Counter()
for trace in traces:
lines = trace.split(\n)
cause = lines[-1] if lines else Unknown
causes[cause] += 1

print(f找到 {len(traces)} 个回溯,{len(causes)} 个唯一原因:\n)
for cause, count in causes.most_common(20):
print(f {count:4d}x {cause})

实时监控

跟踪和过滤

bash

跟踪日志文件,用红色高亮错误


tail -f app.log | grep --color=always -i error\|warn\|$

跟踪并仅过滤错误

tail -f app.log | grep --line-buffered -i error\|exception

跟踪JSON日志,美化打印错误

tail -f app.log | while IFS= read -r line; do level=$(echo $line | jq -r .level // empty 2>/dev/null) if [ $level = error ] || [ $level = fatal ]; then echo $line | jq . fi done

跟踪多个文件

tail -f /var/log/service-a/app.log /var/log/service-b/app.log

带时间戳跟踪(当日志不包含时间戳时有用)

tail -f app.log | while IFS= read -r line; do echo $(date +%H:%M:%S) $line done

监控特定模式并告警

bash

错误时发出蜂鸣声(终端铃声)


tail -f app.log | grep --line-buffered -i error | while read line; do
echo -e \a$line
done

每分钟统计错误数

tail -f app.log | grep --line-buffered -i error | while read line; do echo $(date +%Y-%m-%d %H:%M) ERROR done | uniq -c

日志格式解析

常见访问日志(Apache/Nginx)

bash

解析字段:IP、日期、方法、路径、状态码、大小


awk {print $1, $9, $7} access.log

按请求数排名前20的IP

awk {print $1} access.log | sort | uniq -c | sort -rn | head -20

按请求数排名前20的路径

awk {print $7} access.log | sort | uniq -c | sort -rn | head -20

慢

标签

skill ai

通过对话安装

以下为平台配置的接入选项,并非逐项实测通过。能否安装取决于客户端支持、技能来源和运行环境:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 log-analyzer-1776126379 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 log-analyzer-1776126379 技能

通过命令行安装

skillhub install log-analyzer-1776126379

下载

⬇ 下载 log-analyzer v1.0.0(免费)

文件大小: 6.06 KB | 发布时间: 2026-4-14 13:11

v1.0.0 最新 2026-4-14 13:11
Initial release: Log parsing, error pattern analysis, stack trace extraction, JSON structured logging, real-time monitoring, multi-service correlation
返回顶部