Skip to content

GeziP/LogReader

Repository files navigation

LogReader - 专业日志分析工具

LogReader

License: MIT Qt Platform Quality CI Codecov Build Status

🌍 语言版本:中文 | English

一款功能强大、易于使用的跨平台日志分析工具,专为开发者和系统管理员设计

✨ 功能特性

🎯 核心功能

功能 描述 状态
📄 大文件支持 高效处理GB级大型日志文件
时间范围筛选 精确选择时间段,快速定位关键日志
🏷️ 多维度筛选 支持日志等级、模块名称等多重筛选条件
🔍 实时搜索 关键词高亮显示,快速导航到目标日志
📊 智能展示 可折叠日志段,聚焦重要信息

🚀 高级功能

功能 描述 状态
📤 多格式导出 支持TXT、CSV、JSON格式,满足不同需求
🧠 智能记忆 记住上次路径、导出位置和格式选择
🎛️ 批量导出 一键导出多种格式,提升工作效率
🌐 多编码支持 支持UTF-8、GBK等多种字符编码
📝 日志格式模板 支持自定义日志格式,自动识别常见格式

📸 功能展示

点击查看详细截图

主界面

主界面

筛选功能

  • 支持时间范围、日志等级、模块名称多重筛选
  • 实时显示过滤结果统计

导出功能

  • 多格式同时导出:TXT、CSV、JSON
  • 智能字段选择和预览
  • 进度条显示导出状态

🚀 快速开始

1️⃣ 打开日志文件

文件 → 打开日志文件 → 选择.log/.txt文件

2️⃣ 设置筛选条件

  • 📅 选择时间范围
  • 🏷️ 勾选需要的日志等级(DEBUG、INFO、WARN、ERROR)
  • 📂 选择关注的模块

3️⃣ 执行筛选

点击 "筛选" 按钮 → 查看过滤结果

4️⃣ 导出结果

文件 → 导出筛选结果 → 选择格式和字段 → 保存

📦 安装说明

📖 详细构建指南: 中文版 | English

系统要求

  • 操作系统: Windows 10+, macOS 10.14+, Linux (Ubuntu 18.04+)
  • Qt版本: 5.12 或更高版本 (支持Qt5/Qt6)
  • 编译器: GCC 7+, Clang 6+, MSVC 2017+

从源码构建

🪟 Windows

# 克隆仓库
git clone https://github.com/yourusername/LogReader.git
cd LogReader

# 使用Qt Creator打开LogReader.pro文件
# 或者使用命令行构建:
qmake
nmake  # 或 mingw32-make

🐧 Linux

# 安装依赖
sudo apt update
sudo apt install qt5-default qttools5-dev cmake build-essential

# 构建项目
git clone https://github.com/yourusername/LogReader.git
cd LogReader
mkdir build && cd build
cmake ..
make -j$(nproc)

🍎 macOS

# 使用Homebrew安装Qt
brew install qt5

# 构建项目
git clone https://github.com/yourusername/LogReader.git
cd LogReader
mkdir build && cd build
cmake ..
make -j$(sysctl -n hw.ncpu)

💡 使用技巧

🔧 日志格式模板

LogReader 支持自定义日志格式模板,自动识别常见日志格式。

自动识别

打开日志文件时,LogReader 会自动检测格式并匹配最佳模板。

支持的预设模板

模板名称 格式示例
Default [2024-09-30 08:51:52.257] [INFO] [Module] : message
Log4j 2024-09-30 08:51:52.257 INFO Module - message
Simple 2024-09-30 08:51:52.257 [INFO] message
Android Logcat [2024-09-30 08:51:52.257] I/Module: message

自定义模板

点击工具栏的 "日志格式" 按钮,可以:

  • 选择预设模板
  • 自定义模板格式(使用 {timestamp} {level} {module} {message} 占位符)
  • 实时预览解析效果

模板语法

  • {timestamp} - 时间戳
  • {level} - 日志级别(INFO、ERROR 等)
  • {module} - 模块名称
  • {message} - 日志内容
  • 其他字符作为字面量分隔符

⚡ 性能优化建议

  • 📊 大文件处理: 建议先设置时间范围后再打开大文件
  • 🔄 筛选策略: 从粗筛选到细筛选,逐步缩小范围
  • 💾 导出优化: 大量数据导出时选择合适的格式(CSV最快)

🎯 实用场景

  • 🐛 调试应用: 快速定位ERROR和WARN级别的日志
  • 📊 性能分析: 筛选特定模块的性能日志
  • 📈 数据分析: 导出CSV格式用于Excel或其他分析工具
  • 📋 报告生成: 导出JSON格式用于自动化报告

🛠️ 开发者指南

项目结构

LogReader/
├── src/                  # 源代码目录
│   ├── main.cpp          # 应用程序入口
│   ├── ui/               # 用户界面模块
│   │   ├── logviewer.cpp/.h      # 主窗口实现
│   │   ├── exportdialog.cpp/.h   # 导出配置对话框
│   │   └── formattemplatedialog.cpp/.h  # 格式模板对话框
│   ├── core/             # 核心逻辑模块
│   │   ├── logentry.h            # 日志条目数据结构
│   │   ├── logexporter.cpp/.h    # 导出功能实现
│   │   ├── logloader.cpp/.h      # 日志加载器
│   │   └── logformattemplate.cpp/.h  # 格式模板引擎
│   └── utils/            # 工具类模块
│       ├── appsettings.cpp/.h    # 应用设置管理
│       └── languagemanager.cpp/.h  # 语言管理器
├── resources/            # 资源文件目录
│   ├── icons/            # 图标资源
│   └── resources.qrc     # Qt资源文件
├── docs/                 # 文档和示例日志
├── translations/         # 国际化文件
├── tests/                # 单元测试
├── CMakeLists.txt        # CMake构建配置
└── LogReader.pro         # Qt工程文件

技术栈

  • UI框架: Qt 5.x/6.x (Widgets)
  • 构建系统: qmake / CMake
  • 编程语言: C++17

贡献指南

  1. 🍴 Fork本仓库
  2. 🌱 创建功能分支 (git checkout -b feature/amazing-feature)
  3. 💾 提交更改 (git commit -m 'Add amazing feature')
  4. 📤 推送到分支 (git push origin feature/amazing-feature)
  5. 🔄 创建Pull Request

📄 许可证

本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。

🤝 致谢

  • Qt团队 - 提供优秀的跨平台框架
  • 开源社区 - 提供灵感和技术支持
  • 所有贡献者 - 感谢每一个改进建议和代码贡献

📞 联系方式


Made with ❤️ by LogReader Team

专业的日志分析,从LogReader开始

About

LogReader is a cross-platform log file viewer built with Qt. It supports opening large log files with features like time range filtering, log level filtering, keyword search, and multi-format export. Includes Chinese and English interface support, suitable for developers' daily debugging and system administrators' log analysis.

Topics

Resources

License

Stars

Watchers

Forks

Contributors