诊断标志

诊断标志让你针对特定子系统开启调试日志,不用把所有地方的详细日志都打开。标志是可选的,只有对应的子系统检查时才生效。

工作原理

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

通过配置启用

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

多个标志:

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

改完标志后重启 gateway。

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

OPENCLAW_DIAGNOSTICS=telegram.http,telegram.payload

禁用所有标志:

OPENCLAW_DIAGNOSTICS=0

日志输出位置

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

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

如果设了 logging.file,用那个路径。日志是 JSONL 格式(每行一个 JSON 对象)。敏感信息脱敏仍然按 logging.redactSensitive 的配置执行。

提取日志

找到最新的日志文件:

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

筛选 Telegram HTTP 诊断:

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

或者一边复现一边 tail:

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

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

注意事项

  • 如果 logging.level 设的比 warn 高,这些日志可能被抑制。默认 info 就行。
  • 标志可以一直开着不用担心;它们只影响对应子系统的日志量。
  • /logging 修改日志目标、级别和脱敏设置。