Gateway
Registrazione dei log del Gateway
Registrazione dei log
Per una panoramica rivolta all’utente (CLI + Control UI + configurazione), vedi /logging.
OpenClaw ha due "superfici" di log:
- Output della console (ciò che vedi nel terminale / Debug UI).
- Log su file (righe JSON) scritti dal logger del Gateway.
All’avvio, il Gateway registra nei log il modello agente predefinito risolto insieme ai valori predefiniti della modalità che influiscono sulle nuove sessioni, per esempio:
agent model: openai-codex/gpt-5.5 (thinking=medium, fast=on)
thinking proviene dall’agente predefinito, dai parametri del modello o dal valore predefinito globale dell’agente;
quando non è impostato, il riepilogo di avvio mostra medium. fast proviene
dall’agente predefinito o dai parametri fastMode del modello.
Logger basato su file
- Il file di log rotativo predefinito si trova in
/tmp/openclaw/(un file al giorno):openclaw-YYYY-MM-DD.log- La data usa il fuso orario locale dell’host del Gateway.
- I file di log attivi ruotano a
logging.maxFileBytes(predefinito: 100 MB), mantenendo fino a cinque archivi numerati e continuando a scrivere un nuovo file attivo. - Il percorso e il livello del file di log possono essere configurati tramite
~/.openclaw/openclaw.json:logging.filelogging.level
Il formato del file è un oggetto JSON per riga.
I percorsi del codice per talk, voce in tempo reale e stanze gestite usano il logger di file condiviso per record del ciclo di vita delimitati. Questi record sono destinati al debug operativo e all’esportazione dei log OTLP; il testo della trascrizione, i payload audio, gli ID di turno, gli ID di chiamata e gli ID degli elementi del provider non vengono copiati nel record di log.
La scheda Logs della Control UI segue questo file tramite il Gateway (logs.tail).
La CLI può fare lo stesso:
openclaw logs --follow
Verboso e livelli di log
- Log su file sono controllati esclusivamente da
logging.level. --verboseinfluisce solo sulla verbosità della console (e sullo stile dei log WS); non aumenta il livello dei log su file.- Per acquisire nei log su file dettagli visibili solo in modalità verbosa, imposta
logging.levelsudebugotrace. - La registrazione a livello trace include anche riepiloghi diagnostici dei tempi per percorsi critici selezionati, come la preparazione della factory degli strumenti Plugin. Vedi /tools/plugin#slow-plugin-tool-setup.
Acquisizione della console
La CLI acquisisce console.log/info/warn/error/debug/trace e li scrive nei log su file,
continuando comunque a stampare su stdout/stderr.
Puoi regolare la verbosità della console in modo indipendente tramite:
logging.consoleLevel(predefinitoinfo)logging.consoleStyle(pretty|compact|json)
Redazione
OpenClaw può mascherare i token sensibili prima che l’output di log o trascrizione esca dal processo. Questa policy di redazione dei log viene applicata a console, log su file, record di log OTLP e sink di testo della trascrizione di sessione, quindi i valori segreti corrispondenti vengono mascherati prima che righe JSONL o messaggi vengano scritti su disco.
logging.redactSensitive:off|tools(predefinito:tools)logging.redactPatterns: array di stringhe regex (sostituisce i valori predefiniti)- Usa stringhe regex grezze (auto
gi), oppure/pattern/flagsse hai bisogno di 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, prefissi di token popolari e nomi di campi di credenziali di pagamento come numero di carta, CVC/CVV, token di pagamento condiviso e credenziale di pagamento.
- Usa stringhe regex grezze (auto
Alcuni confini di sicurezza redigono sempre, indipendentemente da logging.redactSensitive.
Ciò include gli eventi di chiamata degli strumenti della Control UI, l’output dello strumento sessions_history,
le esportazioni di supporto diagnostico, le osservazioni degli errori dei provider, la visualizzazione dei comandi di approvazione exec
e i log del protocollo WebSocket del Gateway. Queste superfici possono comunque usare
logging.redactPatterns come pattern aggiuntivi, ma redactSensitive: "off"
non fa sì che emettano segreti grezzi.
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à verbosa (
--verbose): stampa tutto il traffico di richiesta/risposta WS.
Stile dei log WS
openclaw gateway supporta un selettore di stile per singolo Gateway:
--ws-log auto(predefinito): la modalità normale è ottimizzata; la modalità verbosa usa output compatto--ws-log compact: output compatto (richiesta/risposta abbinate) in modalità verbosa--ws-log full: output completo per frame in modalità verbosa--compact: alias per--ws-log compact
Esempi:
# optimized (only errors/slow)
openclaw gateway
# show all WS traffic (paired)
openclaw gateway --verbose --ws-log compact
# show all WS traffic (full meta)
openclaw gateway --verbose --ws-log full
Formattazione della console (logging dei sottosistemi)
Il formatter della console è consapevole del TTY e stampa righe coerenti con prefisso. I logger dei sottosistemi mantengono l’output raggruppato e facilmente scansionabile.
Comportamento:
- Prefissi dei sottosistemi su ogni riga (ad es.
[gateway],[canvas],[tailscale]) - Colori dei sottosistemi (stabili per sottosistema) più colorazione del livello
- Colore quando l’output è un TTY o l’ambiente sembra un terminale ricco (
TERM/COLORTERM/TERM_PROGRAM), rispettaNO_COLOR - Prefissi dei sottosistemi abbreviati: rimuove
gateway/+channels/iniziali, mantiene gli ultimi 2 segmenti (ad es.whatsapp/outbound) - Sotto-logger per sottosistema (prefisso automatico + campo strutturato
{ subsystem }) logRaw()per output QR/UX (nessun prefisso, nessuna formattazione)- Stili della console (ad es.
pretty | compact | json) - Livello di log della console separato dal livello di log su file (il file mantiene tutti i dettagli quando
logging.levelè impostato sudebug/trace) - Corpi dei messaggi WhatsApp vengono registrati a
debug(usa--verboseper vederli)
Questo mantiene stabili i log su file esistenti rendendo al contempo l’output interattivo facilmente scansionabile.