Skip to content

诊断标志(Diagnostics Flags)

诊断标志允许你在不把全局日志都调到 verbose 的情况下,启用定向的调试日志。flags 采用 opt-in:只有当某个子系统显式检查这些标志时,才会生效。

工作原理

  • flags 是字符串(大小写不敏感)。
  • 你可以在配置中启用 flags,或通过环境变量进行覆盖。
  • 支持通配符:
    • telegram.* 匹配 telegram.http
    • * 启用所有 flags

通过配置启用

json
{
  "diagnostics": {
    "flags": ["telegram.http"]
  }
}

多个 flags:

json
{
  "diagnostics": {
    "flags": ["telegram.http", "gateway.*"]
  }
}

修改 flags 后需要重启 gateway。

环境变量覆盖(一次性)

bash
OPENCLAW_DIAGNOSTICS=telegram.http,telegram.payload

禁用所有 flags:

bash
OPENCLAW_DIAGNOSTICS=0

日志输出位置

flags 产生的日志会写入标准的诊断日志文件。默认路径:

/tmp/openclaw/openclaw-YYYY-MM-DD.log

如果设置了 logging.file,则使用该路径。日志格式为 JSONL(每行一个 JSON 对象)。脱敏仍会根据 logging.redactSensitive 生效。

提取日志

选择最新的日志文件:

bash
ls -t /tmp/openclaw/openclaw-*.log | head -n 1

筛选 Telegram HTTP 相关诊断日志:

bash
rg "telegram http error" /tmp/openclaw/openclaw-*.log

或者在复现问题时实时 tail:

bash
tail -f /tmp/openclaw/openclaw-$(date +%F).log | rg "telegram http error"

对于远程 gateway,你也可以使用 openclaw logs --follow(参见 /cli/logs)。

备注

  • 如果 logging.level 被设置得高于 warn,这些日志可能会被抑制。默认 info 没问题。
  • flags 可以安全地长期启用;它只会影响特定子系统的日志量。
  • 通过 /logging 修改日志输出位置、级别与脱敏设置。