您的日志格式:
[I][2025-09-22 +3.0 23:57:49.377][12735, 1*][tag_float_view][:0, ][remove, reason: clearWhenExitRoom
cd tool
python3 generate_log_report_html.py your_log.txt
然后在浏览器中打开生成的 log_report.html
python3 analyze_log_tags.py your_log.txt
python3 analyze_log_tags.py your_log.txt --export report.csv
python3 analyze_log_tags.py your_log.txt --export-json report.json
命令行输出示例:
分析完成!
总行数: 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][其他][消息]
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版本应禁用 |
# 生成HTML报告查看全貌
python3 generate_log_report_html.py app_log.txt
# 在浏览器中查看,识别问题TAG
# 找出占比最高的TAG
python3 analyze_log_tags.py app_log.txt --top 10
# 根据结果修改代码,减少日志输出
# 找出可以删除的TAG
python3 analyze_log_tags.py app_log.txt --suggest-cleanup
# 在代码中搜索并删除这些TAG
# 优化前
python3 analyze_log_tags.py before.txt --export before.csv
# 优化后
python3 analyze_log_tags.py after.txt --export after.csv
# 对比两个CSV文件
禁用VERBOSE和DEBUG日志(Release版本)
if (BuildConfig.DEBUG) {
Log.d(TAG, "调试信息")
}
删除低频TAG(占比 < 0.01%)
--suggest-cleanup 获取清理列表减少循环中的日志
// ❌ 不好
for (item in items) {
Log.d(TAG, "处理: $item") // 每次循环都打印
}
// ✅ 好
Log.d(TAG, "开始处理 ${items.size} 个项目")
统一TAG命名规范
private const val TAG = "TAG_MODULE_FEATURE"
使用日志框架(如Timber)
Timber.tag(TAG).d("消息") // 自动处理Release版本
定期分析(建议每月一次)
# 加入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 🧪 测试脚本
A: 工具支持3种格式。如果都不匹配,可以修改 analyze_log_tags.py 第36-38行的正则表达式。
A:
--top N 限制输出head -10000 log.txt > sample.txtA:
grep "gift" app_log.txt > gift_log.txt
python3 analyze_log_tags.py gift_log.txt
A: 创建定时任务:
#!/bin/bash
DATE=$(date +%Y%m%d)
python3 analyze_log_tags.py "log_${DATE}.txt" --export "report_${DATE}.csv"
# 提取特定时间段的日志
grep "2025-09-22 23:" app_log.txt > night_log.txt
python3 analyze_log_tags.py night_log.txt
# 只分析ERROR日志
grep "^\[E\]" app_log.txt > error_log.txt
python3 analyze_log_tags.py error_log.txt
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
祝您优化顺利!🚀