QUICK_START.md 5.8 KB

日志TAG分析工具 - 快速开始

⚡ 5分钟上手

1. 准备日志文件

您的日志格式:

[I][2025-09-22 +3.0 23:57:49.377][12735, 1*][tag_float_view][:0, ][remove, reason: clearWhenExitRoom

2. 运行分析(3种方式)

方式A:HTML可视化报告(推荐)⭐

cd tool
python3 generate_log_report_html.py your_log.txt

然后在浏览器中打开生成的 log_report.html

方式B:命令行分析

python3 analyze_log_tags.py your_log.txt

方式C:导出CSV/JSON

python3 analyze_log_tags.py your_log.txt --export report.csv
python3 analyze_log_tags.py your_log.txt --export-json report.json

3. 查看结果

命令行输出示例:

分析完成!
总行数: 1000
匹配的日志行数: 995
自定义格式日志数: 995  👈 识别您的自定义格式
不同TAG数量: 45

排名   TAG名称              数量    占比
1     tag_float_view      250     25.1%  👈 最高频
2     tag_gift_send       180     18.1%
3     tag_network         150     15.1%
...

🎯 常用命令

# 只看TOP 20
python3 analyze_log_tags.py log.txt --top 20

# 过滤低频TAG(只看出现≥100次的)
python3 analyze_log_tags.py log.txt --min-count 100

# 获取优化建议
python3 analyze_log_tags.py log.txt --suggest-cleanup

# 一键生成完整报告
python3 analyze_log_tags.py log.txt --export full.csv
python3 generate_log_report_html.py log.txt

📋 支持的日志格式

✅ 您的自定义格式

[级别][日期时间][进程][TAG][其他][消息]

✅ Android标准格式

09-22 23:57:49.377 12735 12735 I TAG: message

✅ 简化格式

I/TAG: message

工具会自动识别格式,无需手动指定!

📊 输出说明

关键指标

指标 说明 建议
占比 > 10% 高频TAG 检查是否日志过多
占比 < 0.01% 低频TAG 考虑删除
TOP 20占比 > 80% 日志集中 重点优化TOP TAG
DEBUG占比 > 70% 调试日志过多 Release版本应禁用

级别说明

  • V (VERBOSE) - 最详细,开发调试用
  • D (DEBUG) - 调试信息,Release应禁用
  • I (INFO) - 重要信息,可保留
  • W (WARN) - 警告信息,需关注
  • E (ERROR) - 错误信息,必须保留

🛠️ 实用场景

场景1:首次分析

# 生成HTML报告查看全貌
python3 generate_log_report_html.py app_log.txt

# 在浏览器中查看,识别问题TAG

场景2:优化高频TAG

# 找出占比最高的TAG
python3 analyze_log_tags.py app_log.txt --top 10

# 根据结果修改代码,减少日志输出

场景3:清理低频TAG

# 找出可以删除的TAG
python3 analyze_log_tags.py app_log.txt --suggest-cleanup

# 在代码中搜索并删除这些TAG

场景4:对比优化效果

# 优化前
python3 analyze_log_tags.py before.txt --export before.csv

# 优化后
python3 analyze_log_tags.py after.txt --export after.csv

# 对比两个CSV文件

💡 优化建议

立即可做的

  1. 禁用VERBOSE和DEBUG日志(Release版本)

    if (BuildConfig.DEBUG) {
       Log.d(TAG, "调试信息")
    }
    
  2. 删除低频TAG(占比 < 0.01%)

    • 运行 --suggest-cleanup 获取清理列表
    • 在代码中搜索并删除
  3. 减少循环中的日志

    // ❌ 不好
    for (item in items) {
       Log.d(TAG, "处理: $item")  // 每次循环都打印
    }
       
    // ✅ 好
    Log.d(TAG, "开始处理 ${items.size} 个项目")
    

长期优化

  1. 统一TAG命名规范

    private const val TAG = "TAG_MODULE_FEATURE"
    
  2. 使用日志框架(如Timber)

    Timber.tag(TAG).d("消息")  // 自动处理Release版本
    
  3. 定期分析(建议每月一次)

    # 加入CI/CD流程
    python3 analyze_log_tags.py latest_log.txt --export monthly_report.csv
    

📁 文件说明

tool/
├── analyze_log_tags.py          ⭐ 主分析脚本
├── generate_log_report_html.py  ⭐ HTML报告生成器
├── LOG_ANALYSIS_README.md       📖 详细文档
├── CUSTOM_FORMAT_GUIDE.md       📖 自定义格式说明
├── QUICK_START.md               📖 本文件
├── example_usage.sh             💡 使用示例
└── test_custom_format.sh        🧪 测试脚本

❓ 常见问题

Q: 我的日志格式不一样怎么办?

A: 工具支持3种格式。如果都不匹配,可以修改 analyze_log_tags.py 第36-38行的正则表达式。

Q: 分析很慢怎么办?

A:

  • 使用 --top N 限制输出
  • 对大文件先截取部分分析:head -10000 log.txt > sample.txt

Q: 想看特定模块的日志怎么办?

A:

grep "gift" app_log.txt > gift_log.txt
python3 analyze_log_tags.py gift_log.txt

Q: 如何持续监控日志?

A: 创建定时任务:

#!/bin/bash
DATE=$(date +%Y%m%d)
python3 analyze_log_tags.py "log_${DATE}.txt" --export "report_${DATE}.csv"

🎓 进阶技巧

1. 按时间段分析

# 提取特定时间段的日志
grep "2025-09-22 23:" app_log.txt > night_log.txt
python3 analyze_log_tags.py night_log.txt

2. 按级别过滤

# 只分析ERROR日志
grep "^\[E\]" app_log.txt > error_log.txt
python3 analyze_log_tags.py error_log.txt

3. 多文件批量分析

for log in logs/*.txt; do
    echo "分析: $log"
    python3 analyze_log_tags.py "$log" --export "reports/$(basename $log .txt).csv"
done

📞 获取帮助

# 查看所有选项
python3 analyze_log_tags.py --help

# 运行测试
./test_custom_format.sh

🎉 开始使用

现在就开始吧!

cd tool
python3 generate_log_report_html.py your_log_file.txt

祝您优化顺利!🚀