插件窝 干货文章 如何高效检索Linux Node.js日志

如何高效检索Linux Node.js日志

日志 error log app 869    来源:    2025-05-05

高效检索Linux Node.js日志的方法

常用日志检索工具

  1. grep命令

    • 基本搜索:grep "error" app.log
    • 忽略大小写:grep -i "error" app.log
    • 显示行号:grep -n "error" app.log
    • 反向匹配:grep -v "debug" app.log
    • 正则搜索:grep -E "error|exception" app.log
  2. awk命令

    • 提取特定列:awk '{print $1, $5}' app.log
    • 条件过滤:awk '/error/ && $3 > 100 {print}' app.log
  3. sed命令

    • 替换文本:sed 's/error/ERROR/g' app.log
    • 提取特定行:sed -n '10,20p' app.log

高级日志分析技巧

  1. 时间范围搜索

    sed -n '/2023-05-01 10:00/,/2023-05-01 11:00/p' app.log
    
  2. 多文件搜索

    grep "error" *.log
    zgrep "error" *.gz  # 搜索压缩日志
    
  3. 实时日志监控

    tail -f app.log | grep "error"
    

Node.js特定日志处理

  1. JSON格式日志处理

    cat app.log | jq '. | select(.level == "error")'
    
  2. 使用Bunyan工具

    cat app.log | bunyan -l error
    
  3. 使用Winston日志

    cat app.log | grep -E 'error|warn' --color=auto
    

日志分析组合命令

  1. 错误统计

    grep -o "error" app.log | wc -l
    
  2. Top错误类型

    awk -F'error:' '{print $2}' app.log | sort | uniq -c | sort -nr | head -10
    
  3. 时间分布分析

    awk '{print $1}' app.log | cut -d'T' -f1 | uniq -c
    

日志管理最佳实践

  1. 使用日志轮转工具

    • logrotate配置管理日志文件大小和保留策略
  2. 结构化日志

    • 使用JSON格式输出日志,便于解析和分析
  3. 集中式日志系统

    • 考虑使用ELK(Elasticsearch, Logstash, Kibana)或Graylog等工具
  4. 日志级别合理设置

    • 生产环境使用适当级别(如info),开发环境可使用debug

这些方法可以帮助您高效地检索和分析Node.js应用程序日志,快速定位和解决问题。