# 日志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可视化报告(推荐)⭐ ```bash cd tool python3 generate_log_report_html.py your_log.txt ``` 然后在浏览器中打开生成的 `log_report.html` #### 方式B:命令行分析 ```bash python3 analyze_log_tags.py your_log.txt ``` #### 方式C:导出CSV/JSON ```bash 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% ... ``` ## 🎯 常用命令 ```bash # 只看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:首次分析 ```bash # 生成HTML报告查看全貌 python3 generate_log_report_html.py app_log.txt # 在浏览器中查看,识别问题TAG ``` ### 场景2:优化高频TAG ```bash # 找出占比最高的TAG python3 analyze_log_tags.py app_log.txt --top 10 # 根据结果修改代码,减少日志输出 ``` ### 场景3:清理低频TAG ```bash # 找出可以删除的TAG python3 analyze_log_tags.py app_log.txt --suggest-cleanup # 在代码中搜索并删除这些TAG ``` ### 场景4:对比优化效果 ```bash # 优化前 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版本) ```kotlin if (BuildConfig.DEBUG) { Log.d(TAG, "调试信息") } ``` 2. **删除低频TAG**(占比 < 0.01%) - 运行 `--suggest-cleanup` 获取清理列表 - 在代码中搜索并删除 3. **减少循环中的日志** ```kotlin // ❌ 不好 for (item in items) { Log.d(TAG, "处理: $item") // 每次循环都打印 } // ✅ 好 Log.d(TAG, "开始处理 ${items.size} 个项目") ``` ### 长期优化 1. **统一TAG命名规范** ```kotlin private const val TAG = "TAG_MODULE_FEATURE" ``` 2. **使用日志框架**(如Timber) ```kotlin Timber.tag(TAG).d("消息") // 自动处理Release版本 ``` 3. **定期分析**(建议每月一次) ```bash # 加入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: ```bash grep "gift" app_log.txt > gift_log.txt python3 analyze_log_tags.py gift_log.txt ``` ### Q: 如何持续监控日志? A: 创建定时任务: ```bash #!/bin/bash DATE=$(date +%Y%m%d) python3 analyze_log_tags.py "log_${DATE}.txt" --export "report_${DATE}.csv" ``` ## 🎓 进阶技巧 ### 1. 按时间段分析 ```bash # 提取特定时间段的日志 grep "2025-09-22 23:" app_log.txt > night_log.txt python3 analyze_log_tags.py night_log.txt ``` ### 2. 按级别过滤 ```bash # 只分析ERROR日志 grep "^\[E\]" app_log.txt > error_log.txt python3 analyze_log_tags.py error_log.txt ``` ### 3. 多文件批量分析 ```bash for log in logs/*.txt; do echo "分析: $log" python3 analyze_log_tags.py "$log" --export "reports/$(basename $log .txt).csv" done ``` ## 📞 获取帮助 ```bash # 查看所有选项 python3 analyze_log_tags.py --help # 运行测试 ./test_custom_format.sh ``` ## 🎉 开始使用 现在就开始吧! ```bash cd tool python3 generate_log_report_html.py your_log_file.txt ``` 祝您优化顺利!🚀