Skip to content

日志系统

Luker 内置了完整的日志捕获和管理系统,覆盖后端服务和前端浏览器两个层面。当你遇到问题需要排查时,日志系统能帮助你快速定位原因。

日志系统是一个独立的功能模块,不依赖 Luker 的其他功能(如 Memory Graph、CardApp 等),开箱即用。

后端日志

Luker 的后端日志系统会自动拦截服务端的所有控制台输出,将日志存储在内存中供查看。

工作方式

  • 自动拦截:服务启动时,Luker 会自动拦截 console.logconsole.warnconsole.error 等输出
  • 环形缓冲区:日志存储在固定大小的内存缓冲区中。当缓冲区满时,最旧的日志会被自动丢弃,确保不会占用过多内存
  • 时间戳和级别:每条日志都记录了精确的时间戳和日志级别(info、warn、error),方便按时间和严重程度筛选

查看和管理

管理员可以通过前端管理面板远程查看服务端日志,无需登录服务器查看控制台。同时也可以一键清空日志缓冲区。

TIP

后端日志仅保存在内存中,服务重启后会清空。如果你需要持久化的日志记录,建议将 Luker 的控制台输出重定向到文件。

前端日志管理器

Luker 还在浏览器端内置了一个日志管理器,用于捕获前端运行时的各种信息。

Console 拦截

前端日志管理器会拦截浏览器的 console.traceconsole.debugconsole.logconsole.infoconsole.warnconsole.error 六个级别的输出,将它们写入内存缓冲区(最多保留 3000 条)。

Fetch 请求日志

除了 console 输出,前端日志管理器还会自动记录浏览器发出的 API 请求信息,包括:

  • 请求的方法和路径
  • 响应状态码和耗时
  • 请求失败或中止的错误信息

这些信息经过智能摘要处理——只提取关键字段(如模型名称、消息数量等),不会记录完整的请求内容,既保证了调试价值,又避免了隐私泄露。

全局错误捕获

前端日志管理器还会自动捕获浏览器中的未处理错误和 Promise 拒绝事件,确保这些容易被忽略的异常也能被记录下来。

日志可见性

默认情况下,只有 error 级别的日志会在浏览器控制台中显示。如果你需要查看更详细的调试信息,可以开启 debug 模式,此时所有级别的日志都会输出到浏览器控制台。

无论 debug 模式是否开启,所有级别的日志都会被写入内存缓冲区,可以随时导出查看。

使用场景

调试问题

当 Luker 出现异常行为时,日志系统是最直接的排查工具:

  • API 连接失败 — 查看后端日志中的错误信息,确认 API 地址和密钥是否正确
  • 生成中断 — 查看前端日志中的 Fetch 请求记录,了解请求是否超时或被拒绝
  • 扩展报错 — 前端日志会捕获扩展运行时的错误,帮助定位问题扩展

排查错误

如果你需要向开发者报告问题,可以导出前端日志快照,其中包含了问题发生前后的完整上下文信息,比单纯的截图更有助于问题定位。

WARNING

日志中可能包含 API 请求的部分信息。在分享日志时,请注意检查是否包含敏感内容(如 API 密钥)。前端日志管理器已经对敏感字段进行了脱敏处理(例如 CSRF Token 只记录「存在」而不记录具体值),但仍建议在分享前检查一遍。

相关页面

Built upon SillyTavern