Logging
Per una panoramica rivolta all’utente (CLI + Control UI + configurazione), vedi /logging. OpenClaw ha due “superfici” di log:- Output della console (quello che vedi nel terminale / Debug UI).
- File di log (righe JSON) scritti dal logger del gateway.
Logger basato su file
- Il file di log rolling predefinito si trova sotto
/tmp/openclaw/(un file al giorno):openclaw-YYYY-MM-DD.log- La data usa il fuso orario locale dell’host del gateway.
- Il percorso e il livello del file di log possono essere configurati tramite
~/.openclaw/openclaw.json:logging.filelogging.level
logs.tail).
La CLI può fare lo stesso:
- I file di log sono controllati esclusivamente da
logging.level. --verboseinfluisce solo sulla verbosità della console (e sullo stile dei log WS); non aumenta il livello di log del file.- Per acquisire nei file di log dettagli visibili solo in modalità verbose, imposta
logging.levelsudebugotrace.
Acquisizione della console
La CLI acquisisceconsole.log/info/warn/error/debug/trace e li scrive nei file di log,
continuando comunque a stamparli su stdout/stderr.
Puoi regolare la verbosità della console in modo indipendente tramite:
logging.consoleLevel(predefinitoinfo)logging.consoleStyle(pretty|compact|json)
Redazione del riepilogo strumenti
I riepiloghi dettagliati degli strumenti (ad esempio🛠️ Exec: ...) possono mascherare token sensibili prima che raggiungano lo
stream della console. Questo vale solo per gli strumenti e non modifica i file di log.
logging.redactSensitive:off|tools(predefinito:tools)logging.redactPatterns: array di stringhe regex (sovrascrive i valori predefiniti)- Usa stringhe regex grezze (auto
gi), oppure/pattern/flagsse ti servono flag personalizzati. - Le corrispondenze vengono mascherate mantenendo i primi 6 + gli ultimi 4 caratteri (lunghezza >= 18), altrimenti
***. - I valori predefiniti coprono assegnazioni comuni di chiavi, flag CLI, campi JSON, header bearer, blocchi PEM e prefissi di token diffusi.
- Usa stringhe regex grezze (auto
Log WebSocket del gateway
Il gateway stampa i log del protocollo WebSocket in due modalità:- Modalità normale (senza
--verbose): vengono stampati solo i risultati RPC “interessanti”:- errori (
ok=false) - chiamate lente (soglia predefinita:
>= 50ms) - errori di parsing
- errori (
- Modalità verbose (
--verbose): stampa tutto il traffico WS richiesta/risposta.
Stile dei log WS
openclaw gateway supporta un selettore di stile per gateway:
--ws-log auto(predefinito): la modalità normale è ottimizzata; la modalità verbose usa output compatto--ws-log compact: output compatto (richiesta/risposta abbinate) in modalità verbose--ws-log full: output completo per frame in modalità verbose--compact: alias di--ws-log compact
Formattazione della console (logging del sottosistema)
Il formatter della console è consapevole del TTY e stampa righe coerenti con prefisso. I logger di sottosistema mantengono l’output raggruppato e facilmente leggibile. Comportamento:- Prefissi di sottosistema su ogni riga (ad esempio
[gateway],[canvas],[tailscale]) - Colori di sottosistema (stabili per sottosistema) più colorazione del livello
- Colore quando l’output è un TTY o l’ambiente sembra un terminale avanzato (
TERM/COLORTERM/TERM_PROGRAM), nel rispetto diNO_COLOR - Prefissi di sottosistema abbreviati: rimuove
gateway/+channels/iniziali, mantiene gli ultimi 2 segmenti (ad esempiowhatsapp/outbound) - Sub-logger per sottosistema (prefisso automatico + campo strutturato
{ subsystem }) logRaw()per output QR/UX (senza prefisso, senza formattazione)- Stili console (ad esempio
pretty | compact | json) - Livello di log della console separato dal livello di log del file (il file mantiene il dettaglio completo quando
logging.levelè impostato sudebug/trace) - I corpi dei messaggi WhatsApp vengono registrati a livello
debug(usa--verboseper vederli)