跳到主要内容

Open WebUI 日志

控制 Open WebUI 记录什么、输出到哪里、采用什么格式——从快速调试到生产日志管道都适用。

Open WebUI 有两个日志面:前端调试用的浏览器控制台,以及服务端事件用的 Python 后端日志。大多数配置都发生在后端:你可以通过一个环境变量调整详细程度,也可以切换到结构化 JSON 输出,以对接 Loki、Datadog、CloudWatch 等日志聚合器。


前端日志

前端使用标准浏览器 console.log() 调用。打开浏览器开发者工具(F12,或 macOS 上的 Cmd+Option+I),切换到 控制台 标签页,即可看到客户端应用输出的信息、警告与错误。

各浏览器文档:


后端日志

后端使用 Python 内置的 logging 模块。默认情况下,日志以 INFO 级别输出到 标准输出(stdout),因此你可以直接在终端或容器日志中看到它们。

日志级别

级别数值适用场景
CRITICAL50灾难性故障;应用可能终止
ERROR40操作失败;应用继续运行,但已有功能出错
WARNING30值得调查的异常情况:弃用提示、资源压力等
INFO20正常运行流程:启动、关键事件、请求处理 (默认)
DEBUG10详细诊断输出:函数调用、变量值、执行步骤

设置全局日志级别

设置 GLOBAL_LOG_LEVEL 即可调整整个后端的日志详细程度。它会通过 logging.basicConfig(force=True) 配置 Python 根 logger,从而影响所有 Open WebUI logger 以及大多数第三方库。

Docker:

--env GLOBAL_LOG_LEVEL="DEBUG"

Docker Compose:

environment:
  - GLOBAL_LOG_LEVEL=DEBUG
提示

DEBUG 适合开发和故障排查。生产环境建议保持在 INFOWARNING,以免日志量过大。


结构化 JSON 日志

如果生产环境使用日志聚合器,可设置 LOG_FORMAT=json,让所有 标准输出(stdout) 输出都变为单行 JSON 对象。

Docker:

--env LOG_FORMAT="json"

Docker Compose:

environment:
  - LOG_FORMAT=json

JSON 字段:

字段说明
tsISO 8601 时间戳
level日志级别(debuginfowarnerrorfatal
msg日志消息
caller源代码位置(module:function:line
extra额外上下文数据(如有)
error错误详情(如适用)
stacktrace堆栈跟踪(如适用)

示例输出:

{"ts": "2026-02-22T20:14:53.386+00:00", "level": "info", "msg": "GLOBAL_LOG_LEVEL: INFO", "caller": "open_webui.env"}
{"ts": "2026-02-22T20:15:02.245+00:00", "level": "info", "msg": "Context impl SQLiteImpl.", "caller": "alembic.runtime.migration"}
备注
  • 默认行为(未设置 LOG_FORMAT)保持不变:仍为纯文本输出
  • 设置 LOG_FORMAT=json 后会隐藏 ASCII banner,以保证日志流便于解析
  • JSON 日志覆盖早期启动日志(stdlib logging)和运行期日志(Loguru)
本内容仅供参考,不构成任何保证、担保或合同承诺。Open WebUI 按“现状”提供。请参阅您的许可协议 以了解适用条款。