# 日志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
```

祝您优化顺利！🚀

