日志系统
Luker 内置了完整的日志捕获和管理系统,覆盖后端服务和前端浏览器两个层面。当你遇到问题需要排查时,日志系统能帮助你快速定位原因。
日志系统是一个独立的功能模块,不依赖 Luker 的其他功能(如 Memory Graph、CardApp 等),开箱即用。
后端日志
Luker 的后端日志系统会自动拦截服务端的所有控制台输出,将日志存储在内存中供查看。
工作方式
- 自动拦截:服务启动时,Luker 会自动拦截
console.log、console.warn、console.error等输出 - 环形缓冲区:日志存储在固定大小的内存缓冲区中。当缓冲区满时,最旧的日志会被自动丢弃,确保不会占用过多内存
- 时间戳和级别:每条日志都记录了精确的时间戳和日志级别(info、warn、error),方便按时间和严重程度筛选
查看和管理
管理员可以通过前端管理面板远程查看服务端日志,无需登录服务器查看控制台。同时也可以一键清空日志缓冲区。
TIP
后端日志仅保存在内存中,服务重启后会清空。如果你需要持久化的日志记录,建议将 Luker 的控制台输出重定向到文件。
前端日志管理器
Luker 还在浏览器端内置了一个日志管理器,用于捕获前端运行时的各种信息。
Console 拦截
前端日志管理器会拦截浏览器的 console.trace、console.debug、console.log、console.info、console.warn、console.error 六个级别的输出,将它们写入内存缓冲区(最多保留 3000 条)。
Fetch 请求日志
除了 console 输出,前端日志管理器还会自动记录浏览器发出的 API 请求信息,包括:
- 请求的方法和路径
- 响应状态码和耗时
- 请求失败或中止的错误信息
这些信息经过智能摘要处理——只提取关键字段(如模型名称、消息数量等),不会记录完整的请求内容,既保证了调试价值,又避免了隐私泄露。
全局错误捕获
前端日志管理器还会自动捕获浏览器中的未处理错误和 Promise 拒绝事件,确保这些容易被忽略的异常也能被记录下来。
日志可见性
默认情况下,只有 error 级别的日志会在浏览器控制台中显示。如果你需要查看更详细的调试信息,可以开启 debug 模式,此时所有级别的日志都会输出到浏览器控制台。
无论 debug 模式是否开启,所有级别的日志都会被写入内存缓冲区,可以随时导出查看。
使用场景
调试问题
当 Luker 出现异常行为时,日志系统是最直接的排查工具:
- API 连接失败 — 查看后端日志中的错误信息,确认 API 地址和密钥是否正确
- 生成中断 — 查看前端日志中的 Fetch 请求记录,了解请求是否超时或被拒绝
- 扩展报错 — 前端日志会捕获扩展运行时的错误,帮助定位问题扩展
排查错误
如果你需要向开发者报告问题,可以导出前端日志快照,其中包含了问题发生前后的完整上下文信息,比单纯的截图更有助于问题定位。
WARNING
日志中可能包含 API 请求的部分信息。在分享日志时,请注意检查是否包含敏感内容(如 API 密钥)。前端日志管理器已经对敏感字段进行了脱敏处理(例如 CSRF Token 只记录「存在」而不记录具体值),但仍建议在分享前检查一遍。