插件窝 干货文章 如何用grep高效搜索Node.js日志

如何用grep高效搜索Node.js日志

grep 搜索 error log 295    来源:    2025-05-04

高效使用grep搜索Node.js日志

grep是Linux/Unix下强大的文本搜索工具,对于分析Node.js日志非常有用。以下是一些高效使用grep搜索Node.js日志的技巧:

基本搜索

# 简单搜索包含"error"的行
grep "error" app.log

# 忽略大小写
grep -i "error" app.log

# 显示匹配行及前后几行(上下文)
grep -C 3 "error" app.log  # 显示匹配行前后各3行
grep -A 2 "error" app.log  # 显示匹配行后2行
grep -B 2 "error" app.log  # 显示匹配行前2行

高级搜索技巧

# 搜索多个关键词
grep -E "error|warning|exception" app.log

# 使用正则表达式搜索
grep -E "[0-9]{4}-[0-9]{2}-[0-9]{2}.*error" app.log

# 反向搜索(排除包含某关键词的行)
grep -v "debug" app.log

# 统计匹配行数
grep -c "error" app.log

# 显示匹配行号
grep -n "error" app.log

针对Node.js日志的特殊处理

# 搜索特定时间段的日志
grep "2023-05-15 14:" app.log

# 搜索特定请求ID的日志
grep "req-id: abc123" app.log

# 搜索Express路由错误
grep -E "GET|POST|PUT|DELETE.*500" app.log

# 搜索未捕获的异常
grep "uncaughtException" app.log

# 搜索内存警告
grep -i "heap out of memory" app.log

组合其他命令

# 实时监控日志文件
tail -f app.log | grep "error"

# 将结果保存到文件
grep "error" app.log > errors.txt

# 结合sort和uniq统计错误类型
grep -o "error: .*" app.log | sort | uniq -c | sort -nr

# 使用zgrep搜索压缩的日志文件
zgrep "error" app.log.gz

性能优化

# 使用fgrep加快固定字符串搜索
fgrep "error" app.log

# 限制搜索范围(如最近10000行)
tail -10000 app.log | grep "error"

# 并行搜索大文件
parallel --pipe grep "error" < app.log

这些技巧可以帮助你更高效地分析Node.js应用日志,快速定位问题所在。