Diagnostics
Sinalizadores de diagnóstico
Flags de diagnóstico permitem habilitar logs de depuração direcionados sem ativar logs detalhados em todos os lugares. As flags são opt-in e não têm efeito a menos que um subsistema as verifique.
Como funciona
- Flags são strings (sem diferenciar maiúsculas de minúsculas).
- Você pode habilitar flags na configuração ou por meio de uma substituição via env.
- Caracteres curinga são compatíveis:
telegram.*corresponde atelegram.http*habilita todas as flags
Habilitar via configuração
{ "diagnostics": { "flags": ["telegram.http"] }}Múltiplas flags:
{ "diagnostics": { "flags": ["telegram.http", "brave.http", "gateway.*"] }}Reinicie o Gateway depois de alterar as flags.
Substituição via env (uso único)
OPENCLAW_DIAGNOSTICS=telegram.http,telegram.payloadDesabilitar todas as flags:
OPENCLAW_DIAGNOSTICS=0OPENCLAW_DIAGNOSTICS=0 é uma substituição de desabilitação em nível de processo: ela desabilita
flags tanto do env quanto da configuração para esse processo.
Flags de perfilamento
Flags de perfilador habilitam intervalos de temporização direcionados sem aumentar os níveis globais de log. Elas ficam desabilitadas por padrão.
Habilite todos os intervalos controlados por perfilador para uma execução do Gateway:
OPENCLAW_DIAGNOSTICS=profiler openclaw gateway runHabilite apenas intervalos de perfilador de envio de respostas:
OPENCLAW_DIAGNOSTICS=reply.profiler openclaw gateway runHabilite apenas intervalos de perfilador de inicialização/ferramenta/thread do servidor de app Codex:
OPENCLAW_DIAGNOSTICS=codex.profiler openclaw gateway runHabilite flags de perfilador pela configuração:
{ "diagnostics": { "flags": ["reply.profiler", "codex.profiler"] }}Reinicie o Gateway depois de alterar flags de configuração. Para desabilitar uma flag de perfilador,
remova-a de diagnostics.flags e reinicie. Para desabilitar temporariamente todas as
flags de diagnóstico mesmo quando a configuração habilita flags de perfilador, inicie o processo com:
OPENCLAW_DIAGNOSTICS=0 openclaw gateway runArtefatos de linha do tempo
A flag timeline grava eventos estruturados de temporização de inicialização e runtime para
harnesses externos de QA:
OPENCLAW_DIAGNOSTICS=timeline \OPENCLAW_DIAGNOSTICS_TIMELINE_PATH=/tmp/openclaw-timeline.jsonl \openclaw gateway runVocê também pode habilitá-la na configuração:
{ "diagnostics": { "flags": ["timeline"] }}O caminho do arquivo de linha do tempo ainda vem de
OPENCLAW_DIAGNOSTICS_TIMELINE_PATH. Quando timeline é habilitada apenas pela
configuração, os primeiros intervalos de carregamento de configuração não são emitidos porque o OpenClaw
ainda não leu a configuração; os intervalos de inicialização subsequentes usam a flag da configuração.
OPENCLAW_DIAGNOSTICS=1, OPENCLAW_DIAGNOSTICS=all e
OPENCLAW_DIAGNOSTICS=* também habilitam a linha do tempo porque habilitam todas as
flags de diagnóstico. Prefira timeline quando você quiser apenas o artefato de temporização
JSONL.
Registros de linha do tempo usam o envelope openclaw.diagnostics.v1. Eventos podem incluir
IDs de processo, nomes de fase, nomes de intervalo, durações, IDs de plugin, contagens de dependências,
amostras de atraso do loop de eventos, nomes de operações de provedor, estado de saída de processo filho
e nomes/mensagens de erro de inicialização. Trate arquivos de linha do tempo como artefatos locais
de diagnóstico; revise-os antes de compartilhá-los fora da sua máquina.
Para onde os logs vão
Flags emitem logs no arquivo de log de diagnóstico padrão. Por padrão:
/tmp/openclaw/openclaw-YYYY-MM-DD.logSe você definir logging.file, use esse caminho em vez disso. Logs são JSONL (um objeto JSON por linha). A redação ainda se aplica com base em logging.redactSensitive.
Extrair logs
Escolha o arquivo de log mais recente:
ls -t /tmp/openclaw/openclaw-*.log | head -n 1Filtre diagnósticos HTTP do Telegram:
rg "telegram http error" /tmp/openclaw/openclaw-*.logFiltre diagnósticos HTTP do Brave Search:
rg "brave http" /tmp/openclaw/openclaw-*.logOu acompanhe enquanto reproduz:
tail -f /tmp/openclaw/openclaw-$(date +%F).log | rg "telegram http error"Para Gateways remotos, você também pode usar openclaw logs --follow (veja /cli/logs).
Observações
- Se
logging.levelestiver definido acima dewarn, esses logs podem ser suprimidos. O padrãoinfoé adequado. brave.httpregistra URLs/parâmetros de consulta de solicitações do Brave Search, status/temporização de resposta e eventos de acerto/erro/gravação de cache. Ele não registra chaves de API nem corpos de resposta, mas consultas de pesquisa podem ser sensíveis.- É seguro deixar flags habilitadas; elas afetam apenas o volume de log do subsistema específico.
- Use /logging para alterar destinos, níveis e redação de logs.