Logging
Para uma visão geral voltada ao usuário (CLI + Control UI + configuração), veja /logging. O OpenClaw tem duas “superfícies” de log:- Saída do console (o que você vê no terminal / Debug UI).
- Logs em arquivo (linhas JSON) gravados pelo logger do gateway.
Logger baseado em arquivo
- O arquivo de log rotativo padrão fica em
/tmp/openclaw/(um arquivo por dia):openclaw-YYYY-MM-DD.log- A data usa o fuso horário local do host do Gateway.
- O caminho do arquivo de log e o nível podem ser configurados via
~/.openclaw/openclaw.json:logging.filelogging.level
logs.tail).
A CLI pode fazer o mesmo:
- Logs em arquivo são controlados exclusivamente por
logging.level. --verboseafeta apenas a verbosidade do console (e o estilo de log WS); não aumenta o nível de log em arquivo.- Para capturar detalhes apenas verbosos nos logs em arquivo, defina
logging.levelcomodebugoutrace.
Captura do console
A CLI capturaconsole.log/info/warn/error/debug/trace e os grava nos logs em arquivo,
enquanto ainda imprime em stdout/stderr.
Você pode ajustar a verbosidade do console de forma independente via:
logging.consoleLevel(padrãoinfo)logging.consoleStyle(pretty|compact|json)
Redação de resumo de ferramentas
Resumos verbosos de ferramentas (por exemplo,🛠️ Exec: ...) podem mascarar tokens sensíveis antes de chegarem ao
stream do console. Isso é apenas para ferramentas e não altera os logs em arquivo.
logging.redactSensitive:off|tools(padrão:tools)logging.redactPatterns: array de strings regex (substitui os padrões)- Use strings regex brutas (auto
gi), ou/pattern/flagsse precisar de flags personalizadas. - Correspondências são mascaradas mantendo os primeiros 6 + últimos 4 caracteres (comprimento >= 18); caso contrário
***. - Os padrões cobrem atribuições comuns de chaves, flags de CLI, campos JSON, cabeçalhos bearer, blocos PEM e prefixos populares de tokens.
- Use strings regex brutas (auto
Logs WebSocket do Gateway
O gateway imprime logs do protocolo WebSocket em dois modos:- Modo normal (sem
--verbose): apenas resultados RPC “interessantes” são impressos:- erros (
ok=false) - chamadas lentas (limiar padrão:
>= 50ms) - erros de parsing
- erros (
- Modo verboso (
--verbose): imprime todo o tráfego de requisição/resposta WS.
Estilo de log WS
openclaw gateway oferece uma alternância de estilo por gateway:
--ws-log auto(padrão): o modo normal é otimizado; o modo verboso usa saída compacta--ws-log compact: saída compacta (requisição/resposta pareadas) quando verboso--ws-log full: saída completa por frame quando verboso--compact: alias para--ws-log compact
Formatação do console (logging por subsistema)
O formatador do console é ciente de TTY e imprime linhas consistentes com prefixos. Loggers de subsistema mantêm a saída agrupada e fácil de examinar. Comportamento:- Prefixos de subsistema em todas as linhas (por exemplo,
[gateway],[canvas],[tailscale]) - Cores de subsistema (estáveis por subsistema) além de coloração por nível
- Cores quando a saída é um TTY ou o ambiente parece um terminal rico (
TERM/COLORTERM/TERM_PROGRAM), respeitaNO_COLOR - Prefixos de subsistema encurtados: remove o prefixo inicial
gateway/+channels/, mantém os últimos 2 segmentos (por exemplo,whatsapp/outbound) - Sub-loggers por subsistema (prefixo automático + campo estruturado
{ subsystem }) logRaw()para saída de QR/UX (sem prefixo, sem formatação)- Estilos de console (por exemplo,
pretty | compact | json) - Nível de log do console separado do nível de log em arquivo (o arquivo mantém o detalhe completo quando
logging.levelestá definido comodebug/trace) - Corpos de mensagens do WhatsApp são registrados em
debug(use--verbosepara vê-los)