Gateway
Journalisation du Gateway
Journalisation
Pour une vue d’ensemble destinée aux utilisateurs (CLI + Control UI + config), consultez /logging.
OpenClaw a deux « surfaces » de journalisation :
- Sortie console (ce que vous voyez dans le terminal / l’interface Debug).
- Journaux de fichiers (lignes JSON) écrits par le journaliseur du Gateway.
Au démarrage, le Gateway journalise le modèle d’agent par défaut résolu avec les valeurs par défaut de mode qui affectent les nouvelles sessions, par exemple :
agent model: openai/gpt-5.5 (thinking=medium, fast=on)thinking provient de l’agent par défaut, des paramètres du modèle ou de la valeur
globale par défaut de l’agent ; lorsqu’il n’est pas défini, le récapitulatif de
démarrage affiche medium. fast provient de l’agent par défaut ou des paramètres
fastMode du modèle.
Journaliseur basé sur des fichiers
- Le fichier journal roulant par défaut se trouve sous
/tmp/openclaw/(un fichier par jour) :openclaw-YYYY-MM-DD.log- La date utilise le fuseau horaire local de l’hôte du Gateway.
- Les fichiers journaux actifs tournent à
logging.maxFileBytes(par défaut : 100 Mo), en conservant jusqu’à cinq archives numérotées et en continuant à écrire dans un nouveau fichier actif. - Le chemin et le niveau du fichier journal peuvent être configurés via
~/.openclaw/openclaw.json:logging.filelogging.level
Le format de fichier est un objet JSON par ligne.
Les chemins de code de conversation, de voix en temps réel et de salles gérées utilisent le journaliseur de fichiers partagé pour des enregistrements de cycle de vie bornés. Ces enregistrements sont destinés au débogage opérationnel et à l’exportation de journaux OTLP ; le texte de transcription, les charges utiles audio, les identifiants de tour, les identifiants d’appel et les identifiants d’éléments fournisseur ne sont pas copiés dans l’enregistrement de journal.
L’onglet Journaux du Control UI suit ce fichier via le Gateway (logs.tail).
La CLI peut faire de même :
openclaw logs --followVerbeux vs niveaux de journalisation
- Les journaux de fichiers sont contrôlés exclusivement par
logging.level. --verboseaffecte uniquement la verbosité de la console (et le style des journaux WS) ; il ne relève pas le niveau des journaux de fichiers.- Pour capturer les détails uniquement verbeux dans les journaux de fichiers, définissez
logging.levelsurdebugoutrace. - La journalisation trace inclut aussi des récapitulatifs de chronométrage diagnostique pour certains chemins critiques, comme la préparation des fabriques d’outils de Plugin. Consultez /tools/plugin#slow-plugin-tool-setup.
Capture de la console
La CLI capture console.log/info/warn/error/debug/trace et les écrit dans les journaux de fichiers,
tout en continuant à les imprimer vers stdout/stderr.
Vous pouvez régler indépendamment la verbosité de la console via :
logging.consoleLevel(par défautinfo)logging.consoleStyle(pretty|compact|json)
Caviardage
OpenClaw peut masquer les jetons sensibles avant que la sortie de journal ou de transcription ne quitte le processus. Cette politique de caviardage de journalisation est appliquée aux puits de texte de console, de journal de fichiers, d’enregistrements de journaux OTLP et de transcriptions de session, afin que les valeurs secrètes correspondantes soient masquées avant l’écriture des lignes JSONL ou des messages sur le disque.
logging.redactSensitive:off|tools(par défaut :tools)logging.redactPatterns: tableau de chaînes regex (remplace les valeurs par défaut)- Utilisez des chaînes regex brutes (
giautomatique), ou/pattern/flagssi vous avez besoin d’indicateurs personnalisés. - Les correspondances sont masquées en conservant les 6 premiers + 4 derniers caractères (longueur >= 18), sinon
***. - Les valeurs par défaut couvrent les affectations de clés courantes, les indicateurs CLI, les champs JSON, les en-têtes bearer, les blocs PEM, les préfixes de jetons populaires et les noms de champs d’identifiants de paiement comme le numéro de carte, CVC/CVV, le jeton de paiement partagé et l’identifiant de paiement.
- Utilisez des chaînes regex brutes (
Certaines limites de sécurité caviardent toujours, quel que soit logging.redactSensitive.
Cela inclut les événements d’appels d’outils du Control UI, la sortie de l’outil sessions_history,
les exportations de support de diagnostics, les observations d’erreurs fournisseur, l’affichage des commandes
d’approbation exec et les journaux du protocole WebSocket du Gateway. Ces surfaces peuvent toujours utiliser
logging.redactPatterns comme motifs supplémentaires, mais redactSensitive: "off"
ne leur fait pas émettre de secrets bruts.
Journaux WebSocket du Gateway
Le gateway imprime les journaux du protocole WebSocket dans deux modes :
- Mode normal (sans
--verbose) : seuls les résultats RPC « intéressants » sont imprimés :- erreurs (
ok=false) - appels lents (seuil par défaut :
>= 50ms) - erreurs d’analyse
- erreurs (
- Mode verbeux (
--verbose) : imprime tout le trafic de requêtes/réponses WS.
Style des journaux WS
openclaw gateway prend en charge un commutateur de style par gateway :
--ws-log auto(par défaut) : le mode normal est optimisé ; le mode verbeux utilise une sortie compacte--ws-log compact: sortie compacte (requête/réponse appariées) en mode verbeux--ws-log full: sortie complète par trame en mode verbeux--compact: alias de--ws-log compact
Exemples :
# 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 fullFormatage de la console (journalisation par sous-système)
Le formateur de console est conscient du TTY et imprime des lignes cohérentes avec préfixe. Les journaliseurs de sous-système gardent la sortie groupée et facile à parcourir.
Comportement :
- Préfixes de sous-système sur chaque ligne (par ex.
[gateway],[canvas],[tailscale]) - Couleurs de sous-système (stables par sous-système) plus coloration par niveau
- Couleur lorsque la sortie est un TTY ou que l’environnement ressemble à un terminal riche (
TERM/COLORTERM/TERM_PROGRAM), respecteNO_COLOR - Préfixes de sous-système raccourcis : supprime les préfixes initiaux
gateway/+channels/, conserve les 2 derniers segments (par ex.whatsapp/outbound) - Sous-journaliseurs par sous-système (préfixe automatique + champ structuré
{ subsystem }) logRaw()pour la sortie QR/UX (pas de préfixe, pas de formatage)- Styles de console (par ex.
pretty | compact | json) - Niveau de journalisation console distinct du niveau de journalisation fichier (le fichier conserve tous les détails lorsque
logging.levelest défini surdebug/trace) - Corps de messages WhatsApp journalisés à
debug(utilisez--verbosepour les voir)
Cela garde les journaux de fichiers existants stables tout en rendant la sortie interactive facile à parcourir.