# easy-log-see **Repository Path**: liyongde/easy-log-see ## Basic Information - **Project Name**: easy-log-see - **Description**: Easy Log See 是一款面向 200MB+ 大型日志的高性能查看与智能诊断工具,提供 Windows 桌面版和浏览器版,支持虚拟滚动、组合检索、Trace ID 关联、多行事件解析、时间轴定位及 AI 根因分析。 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-09-12 - **Last Updated**: 2026-09-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: log, Rust ## README

Log See Logo

Log See

面向大型本地日志的高性能查看、检索与 AI 诊断工具

Version Platform Tauri Rust React Tests OpenAI compatible

Log See 专注于约 200MB 及更大的本地日志文件。桌面端通过 Rust、内存映射和原生索引保持低内存占用,前端只读取当前可见的日志窗口;浏览器版则使用 Web Worker 在后台完成扫描和查询,避免阻塞界面。 ## 界面预览 ![Log See 主界面:文件列表、组合查询、日志窗口和时间轴](./assets/log-see-overview.png) 界面采用高密度三段式布局:左侧管理日志文件,中间完成筛选、查看与时间轴定位,右侧可按需打开 AI 日志诊断面板。桌面端和浏览器版共享一致的操作体验。 ### Trace ID 精确检索 ![Log See Trace ID 关联查询](./assets/log-see-trace-query.png) 识别 `traceId[数字]` 和 `<0><数字>` 两种 TLog Trace ID。查询时直接读取预先建立的关联事件集合,无需重新扫描整个文件,并自动展开第一条完整上下文。 ## 核心能力 | 能力 | 说明 | | --- | --- | | 大文件读取 | Windows 桌面端使用 `mmap` 映射文件,按需向前端发送可见事件,适合 200MB 及更大的日志 | | 组合检索 | 支持时间范围、关键词、正则表达式、日志级别、模块和 Trace ID 联合筛选 | | 结构化解析 | 自动识别 Spring Boot、JBoss、JSON 和纯文本日志,提取时间、线程、级别、logger 与消息 | | 多行事件归并 | 将 SQL 换行、Java 异常堆栈和无时间头长文本归并到上一条逻辑日志事件 | | 高密度浏览 | 虚拟滚动、按需读取、延迟 JSON 格式化,并对快速滚动请求进行防抖和过期响应丢弃 | | 时间轴定位 | 使用 Canvas 绘制日志密度时间轴,点击柱状区域即可跳转到对应事件 | | AI 日志诊断 | 让模型自主补查关键词、事件上下文、Trace 和定时任务运行记录,并输出根因、时间线和建议 | | 隐私保护 | 日志发送前展示事件量、内容大小、Token 估算和脱敏数量;API Key 仅保存在运行内存中 | ## AI 日志诊断 打开日志后点击标题栏的 **AI 分析**,配置 OpenAI 兼容 API 地址、模型名称和 API Key,即可用自然语言提问,例如: ```text 这个 Trace 为什么执行失败?请给出根因、关键时间线和修复建议。 ``` 诊断智能体最多执行 8 轮本地工具调用,可自主完成: - 关键词与组合条件检索 - 单条事件前后文补查 - Trace ID 全链路关联 - 定时任务运行记录检索 - 基于已有结论的连续追问 - 包含原始证据跳转的 Markdown 报告导出 发送每批日志前可以预览并确认实际内容。桌面端支持 HTTPS 的 OpenAI 兼容服务,本地模型可使用 `http://localhost` 或 `http://127.0.0.1`。API Key 不会写入浏览器存储或项目文件。 ## 快速开始 ### 环境要求 - Node.js 18+ - Windows 桌面构建需要 Rust stable 工具链 - 桌面应用运行需要 Microsoft Edge WebView2 Runtime ### 浏览器版 ```bash npm install npm run dev ``` 在页面左侧选择 **打开文件** 或 **打开目录**,日志只在本地浏览器中读取。 ### Windows 桌面版 ```bash npm install npm run tauri:dev ``` 构建正式安装包: ```bash npm run tauri:build ``` 安装包生成在 `src-tauri/target/release/bundle/`,其中 `nsis` 为 EXE 安装程序,`msi` 为 MSI 安装程序。 只构建便携 EXE: ```bash npm run tauri:portable ``` > [!IMPORTANT] > 请勿直接使用 `cargo build --release` 制作发行文件。便携版也必须通过 Tauri 构建命令生成,确保前端资源被正确嵌入。 ## Windows Server 离线部署 部分 Windows Server 环境没有预装 WebView2 Runtime。`release/` 中的服务器离线包已包含 Microsoft 官方 x64 独立离线安装程序: 1. 以管理员身份运行 `MicrosoftEdgeWebView2RuntimeInstallerX64.exe`。 2. 安装完成后运行 Log See 便携程序。 正式 Tauri 安装器使用 `offlineInstaller` 配置,会把 WebView2 离线运行时一并打入安装包。 ## 工作原理 ```text 本地日志文件 │ ├─ Windows 桌面端 ── Rust mmap / Rayon 并行查询 │ └─ 浏览器版 ─────── Web Worker / 字节缓冲区 │ ▼ 行偏移 + 时间 + 级别 + 模块 + Trace 索引 │ ▼ 组合过滤 / 虚拟窗口 / 时间轴 │ ▼ 详情展开 / AI 诊断 / 报告导出 ``` 项目采用“加载时建立索引、查询时过滤索引”的模型。物理日志行会先按时间头归并为逻辑事件,再建立行偏移和元数据索引;查询阶段主要处理索引集合,只在展示详情时读取原始文本。 ## 项目结构 ```text assets/ Logo、应用图标和 README 截图 src/App.jsx 页面、虚拟列表、查询和详情交互 src/AiPanel.jsx AI 诊断面板和报告导出 src/ai-agent.js 智能体工具循环、脱敏与结果解析 src/log-worker.js 浏览器版文件读取、索引与查询引擎 src/tauri-engine.js 前端与 Rust 原生引擎的命令桥接 src/styles.css 深色高密度桌面界面 src-tauri/src/lib.rs mmap、多行事件、Trace 与并行查询引擎 src-tauri/ Tauri 配置、应用图标和安装包资源 tests/ AI 智能体与 Sites Worker 自动化测试 worker/ 浏览器部署 Worker ``` ## 构建与测试 ```bash npm run build npm run test:sites npm run test:ai ``` 生产构建同时生成浏览器静态资源和 Sites 所需的服务端入口。当前包含 4 项 Sites Worker 测试和 10 项 AI 智能体测试。 ## 当前边界 - 浏览器版受浏览器文件权限和内存模型约束,超大文件优先使用 Windows 桌面版。 - 当前以时间头作为逻辑事件边界,已覆盖常见 SQL 换行与 Java 异常堆栈。 - GB18030 编码、索引落盘缓存和文件持续追加监听计划在后续版本完善。