错误日志
面向平台运维人员。这些任务会影响整个部署。请按任务要求准备服务器访问权限或平台管理权限。从管理员手册开始。
服务器上出现失败时,OpenBot 会写一行级别为 Error
的日志。OpenBot 不会把这些日志发送到其他服务。你可以用 Effect 日志器自己添加这个功能。
OpenBot 记录什么
Section titled “OpenBot 记录什么”| 来源 | 何时 |
|---|---|
http |
请求以 500 或更高的状态结束时。 |
turn |
Turn 以 Failed 状态结束时。 |
startup |
OpenBot 启动失败时,比如因为配置有误。 |
普通的请求错误,比如 400、401、404 或
409,不会作为错误记录。人有意中断的工作也不会记录。
每条错误日志的消息都是
OpenBot operation failed,并带有下面这些注解。注解(annotation)是附加在日志行上的一个具名值。
| 注解 | 含义 |
|---|---|
source、operation |
OpenBot 的哪个部分失败了。 |
errorType |
错误的简短名称,OpenBot 知道时才有。 |
requestId、method、route、status |
用于 HTTP 失败。route 是路由模式,不是真实的路径。 |
chatId、turnId |
用于 Turn 失败。 |
日志中还有失败的原因。原因中可能包含错误消息和其他私密数据。
503
的原因常常是一个内部失败,比如数据库错误。OpenBot 不会把内部失败发送给客户端。它会先把它写进一行级别为
Warn
的日志,并带上原因和它在代码中发生的位置。一个请求的每一行日志都和这个请求的错误日志有相同的
requestId。用它可以找到请求失败的原因。
Turn 失败时,客户端只得到一条简短的消息。模型错误,比如对模型来说太大的输入,会保留它的消息,代码是
model_error。其他所有失败,比如数据库错误,代码是
internal_error,消息是固定的文字。完整的原因在一行级别为 Warn、消息为
A Turn failed 的日志中。它和错误日志有相同的 chatId 和 turnId。
OpenBot 也会在后台做一些工作。比如,它会触发到时间的 Trigger,删除旧文件,暂停空闲的 Computer,为 App Index 检查 App,并监听设置的修改。它还会在委派的工作到达时间限制时暂停它,发送提醒,发送 Channel 的消息,并监听来自它的其他实例的调用。
这项工作的某一次运行失败时,OpenBot 会写一行级别为 Warn
的日志,并带上原因。然后它会在下一次的时间再运行这项工作。工作不会停止。这些日志行的级别是
Warn,不是
Error,因为工作还会继续。有几个步骤常常因为无害的原因失败,比如另一个实例正在处理的Chat。下一次运行会再做它们,所以它们的日志行级别是
Debug。
服务器停止时,后台工作也会停止。这不会作为失败记录。
把错误发送到你自己的服务
Section titled “把错误发送到你自己的服务”此开发任务请参见 添加错误日志记录器.