# log_analyzer **Repository Path**: yelisheng_admin/log_analyzer ## Basic Information - **Project Name**: log_analyzer - **Description**: 一个强大的命令行工具,用于分析Java Spring Boot项目的日志文件,智能提取和分类异常信息,并提供解决方案建议。 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-11-28 - **Last Updated**: 2025-11-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 日志分析工具 (Log Analyzer) 一个强大的命令行工具,用于分析Java Spring Boot项目的日志文件,智能提取和分类异常信息,并提供解决方案建议。 ## ✨ 特性 - 🚀 **大文件支持**: 支持10GB+大文件,流式解析,内存占用<500MB - 🎯 **智能识别**: 自动识别50+种Java异常类型 - 🔄 **智能去重**: 相同堆栈异常自动合并,统计出现次数 - 📊 **多种报告**: 彩色控制台输出、HTML报告、JSON导出 - 💡 **解决方案**: 内置知识库,提供常见异常的解决建议 - ⚡ **高性能**: 1GB日志文件解析 < 1分钟 ## 🚀 快速开始 ### 安装 ```bash # 克隆项目 git clone cd log_file_server # 安装依赖 pip install -r requirements.txt ``` ### 基础使用 ```bash # 分析单个日志文件 python log_analyzer.py analyze application.log # 生成HTML报告 python log_analyzer.py analyze application.log --output report.html # 分析多个文件 python log_analyzer.py analyze *.log # 只看ERROR级别 python log_analyzer.py analyze application.log --level ERROR # 过滤特定异常类型 python log_analyzer.py analyze application.log --type NullPointerException ``` ## 📋 命令列表 ### analyze - 分析日志 ```bash python log_analyzer.py analyze <文件> [选项] 选项: --output, -o PATH 输出文件路径 --format, -f FORMAT 输出格式: console|html|json (默认: console) --level LEVEL 过滤日志级别: ERROR|FATAL|WARN --type TYPE 过滤异常类型 --top N 显示Top N异常 (0=全部, 默认: 0) --all 显示所有异常 (等同于 --top 0) --from DATETIME 开始时间 --to DATETIME 结束时间 --no-dedup 不进行去重 ``` ### extract - 快速提取 ```bash # 只提取异常,不做分析(快速模式) python log_analyzer.py extract application.log ``` ### search - 搜索异常 ```bash # 搜索包含关键词的异常 python log_analyzer.py search application.log "database" python log_analyzer.py search application.log "timeout" --context 10 ``` ### stats - 快速统计 ```bash # 只显示统计信息 python log_analyzer.py stats application.log ``` ## 📊 输出示例 ### 控制台输出 ``` ==================== 日志分析报告 ==================== 文件: application.log 大小: 2.3 GB 解析时间: 45秒 📊 异常统计 ┌─────────────────────────────┬───────┬─────────┐ │ 异常类型 │ 数量 │ 占比 │ ├─────────────────────────────┼───────┼─────────┤ │ NullPointerException │ 127 │ 45.2% │ │ SQLException │ 89 │ 31.7% │ │ IOException │ 43 │ 15.3% │ └─────────────────────────────┴───────┴─────────┘ 🔥 Top 5 异常详情 [1] NullPointerException (127次) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 时间: 2025-11-28 08:30:15 位置: UserService.java:45 消息: Cannot invoke "User.getName()" because "user" is null 💡 解决建议: • 在使用对象前添加null检查 • 使用Optional包装可能为null的返回值 • 考虑使用@NonNull注解 ``` ### HTML报告 生成美观的HTML报告,包含: - 异常统计概览 - 交互式图表(饼图、折线图) - 可展开的异常详情 - 语法高亮的堆栈信息 - 解决方案建议 ## 🛠️ 技术架构 - **语言**: Python 3.9+ - **依赖**: - `click`: 命令行参数解析 - `rich`: 彩色终端输出 - `jinja2`: HTML模板引擎 ## 📦 项目结构 ``` log_file_server/ ├── log_analyzer.py # 主入口 ├── src/ │ ├── parser/ # 日志解析 │ ├── analyzer/ # 异常分析 │ ├── reporter/ # 报告生成 │ ├── knowledge/ # 知识库 │ └── utils/ # 工具函数 ├── tests/ # 测试 └── docs/ # 文档 ``` ## 🔧 开发 ```bash # 运行测试 python -m pytest tests/ # 代码格式化 black src/ # 类型检查 mypy src/ ``` ## 📝 版本规划 - **v1.0** (当前): 命令行分析工具 - **v2.0** (计划): 数据持久化,历史查询 - **v3.0** (计划): 轻量Web界面 ## 📄 License MIT ## 🤝 贡献 欢迎提交Issue和Pull Request! ## 📧 联系 如有问题,请提交Issue。