Skip to content

诊断标志(Diagnostics Flags)

诊断标志让你可以对特定子系统开启调试日志,而无需在全局开启冗长日志。标志默认不生效,只有在子系统检查到对应标志时才会输出。

工作原理

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

通过配置文件启用

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

多个标志:

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

修改标志后需要重启 Gateway 使其生效——重启一下你的小龙虾就好。

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

bash
OPENCLAW_DIAGNOSTICS=telegram.http,telegram.payload

禁用所有标志:

bash
OPENCLAW_DIAGNOSTICS=0

日志输出位置

标志输出的日志写入标准诊断日志文件。默认路径:

/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

或在复现问题时实时跟踪:

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

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

注意事项

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