Diagnostics 标志

Diagnostics 标志让你可以启用定向调试日志,而不用在所有地方都开启详细日志。标志是可选的,只有当子系统检查它们时才会生效。

工作原理

  • 标志是字符串(不区分大小写)。
  • 你可以在配置文件中启用标志,或通过环境变量覆盖。
  • 支持通配符:
    • telegram.* 匹配 telegram.http
    • * 启用所有标志

通过配置启用

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

启用多个标志:

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

修改标志后需要重启 Gateway。

环境变量覆盖(临时使用)

OPENCLAW_DIAGNOSTICS=telegram.http,telegram.payload

禁用所有标志:

OPENCLAW_DIAGNOSTICS=0

日志存储位置

标志会将日志输出到标准的 diagnostics 日志文件。默认位置:

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

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

提取日志

选择最新的日志文件:

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

过滤 Telegram HTTP diagnostics:

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

或者在复现问题时实时查看:

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

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

注意事项

  • 如果 logging.level 设置高于 warn,这些日志可能会被抑制。默认的 info 级别就可以。
  • 标志可以安全地保持启用状态;它们只会影响特定子系统的日志量。
  • 使用 /logging 来修改日志目标、级别和脱敏设置。