Logging
Para uma visão geral voltada ao usuário (CLI + Control UI + configuração), consulte /logging. O OpenClaw tem duas “superfícies” de log:- Saída do console (o que você vê no terminal / na UI de depuração).
- 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 e o nível do arquivo de log 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); ele não aumenta o nível de log do arquivo.- Para capturar detalhes visíveis apenas em modo verbose 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 continua imprimindo em stdout/stderr.
Você pode ajustar a verbosidade do console independentemente por meio de:
logging.consoleLevel(padrão:info)logging.consoleStyle(pretty|compact|json)
Redação de resumo de ferramentas
Resumos detalhados de ferramentas (por exemplo🛠️ Exec: ...) podem mascarar tokens sensíveis antes que cheguem ao
fluxo do console. Isso é somente 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 6 primeiros + 4 últimos caracteres (comprimento >= 18), caso contrário
***. - Os padrões cobrem por padrão atribuições comuns de chaves, flags da CLI, campos JSON, cabeçalhos bearer, blocos PEM e prefixos populares de token.
- 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 “interessantes” de RPC são impressos:- erros (
ok=false) - chamadas lentas (limite padrão:
>= 50ms) - erros de análise
- erros (
- Modo verbose (
--verbose): imprime todo o tráfego de solicitação/resposta WS.
Estilo de log WS
openclaw gateway oferece suporte a uma troca de estilo por gateway:
--ws-log auto(padrão): o modo normal é otimizado; o modo verbose usa saída compacta--ws-log compact: saída compacta (solicitação/resposta emparelhadas) em modo verbose--ws-log full: saída completa por frame em modo verbose--compact: alias para--ws-log compact
Formatação do console (logging de subsistema)
O formatador do console é compatível com 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 cada linha (por exemplo
[gateway],[canvas],[tailscale]) - Cores de subsistema (estáveis por subsistema) mais coloração por nível
- Cor quando a saída é um TTY ou o ambiente parece um terminal avançado (
TERM/COLORTERM/TERM_PROGRAM), respeitaNO_COLOR - Prefixos de subsistema encurtados: remove
gateway/+channels/do início, mantém os últimos 2 segmentos (por exemplowhatsapp/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 do arquivo (o arquivo mantém todos os detalhes quando
logging.levelestá definido comodebug/trace) - Corpos de mensagens do WhatsApp são registrados em
debug(use--verbosepara vê-los)