Gateway
Journalisation
OpenClaw comporte deux surfaces principales de journaux :
- Journaux de fichiers (lignes JSON) écrits par le Gateway.
- Sortie console affichĂ©e dans les terminaux et lâinterface de dĂ©bogage du Gateway.
Lâonglet Journaux de lâinterface de contrĂŽle suit le journal de fichier du Gateway. Cette page explique oĂč se trouvent les journaux, comment les lire, et comment configurer les niveaux et formats de journalisation.
Emplacement des journaux
Par défaut, le Gateway écrit un fichier journal tournant sous :
/tmp/openclaw/openclaw-YYYY-MM-DD.log
La date utilise le fuseau horaire local de lâhĂŽte du Gateway.
Chaque fichier effectue une rotation lorsquâil atteint logging.maxFileBytes (par dĂ©faut : 100 Mo).
OpenClaw conserve jusquâĂ cinq archives numĂ©rotĂ©es Ă cĂŽtĂ© du fichier actif, comme
openclaw-YYYY-MM-DD.1.log, et continue à écrire dans un nouveau journal actif au lieu de
supprimer les diagnostics.
Vous pouvez remplacer ce comportement dans ~/.openclaw/openclaw.json :
{ "logging": { "file": "/path/to/openclaw.log" }}Comment lire les journaux
CLI : suivi en direct (recommandé)
Utilisez la CLI pour suivre le fichier journal du Gateway via RPC :
openclaw logs --followOptions actuelles utiles :
--local-time: afficher les horodatages dans votre fuseau horaire local--url <url>/--token <token>/--timeout <ms>: indicateurs RPC standard du Gateway--expect-final: indicateur dâattente de rĂ©ponse finale RPC reposant sur un agent (acceptĂ© ici via la couche cliente partagĂ©e)
Modes de sortie :
- Sessions TTY : lignes de journal structurées, jolies et colorisées.
- Sessions non-TTY : texte brut.
--json: JSON délimité par lignes (un événement de journal par ligne).--plain: forcer le texte brut dans les sessions TTY.--no-color: désactiver les couleurs ANSI.
Lorsque vous transmettez un --url explicite, la CLI nâapplique pas automatiquement les identifiants de configuration ou
dâenvironnement ; incluez vous-mĂȘme --token si le Gateway cible
exige une authentification.
En mode JSON, la CLI émet des objets balisés par type :
meta: métadonnées de flux (fichier, curseur, taille)log: entrée de journal analyséenotice: indications de troncature / rotationraw: ligne de journal non analysée
Si le Gateway local loopback implicite demande un appairage, se ferme pendant la connexion,
ou expire avant que logs.tail ne réponde, openclaw logs bascule automatiquement vers le
journal de fichier configurĂ© du Gateway. Les cibles --url explicites nâutilisent pas
ce repli.
Si le Gateway est injoignable, la CLI affiche une courte suggestion dâexĂ©cuter :
openclaw doctorInterface de contrĂŽle (web)
Lâonglet Journaux de lâinterface de contrĂŽle suit le mĂȘme fichier avec logs.tail.
Consultez Interface de contrĂŽle pour savoir comment lâouvrir.
Journaux par canal uniquement
Pour filtrer lâactivitĂ© des canaux (WhatsApp/Telegram/etc.), utilisez :
openclaw channels logs --channel whatsappFormats de journal
Journaux de fichiers (JSONL)
Chaque ligne du fichier journal est un objet JSON. La CLI et lâinterface de contrĂŽle analysent ces entrĂ©es pour afficher une sortie structurĂ©e (heure, niveau, sous-systĂšme, message).
Les enregistrements JSONL des journaux de fichiers incluent aussi des champs de premier niveau filtrables par machine lorsque disponibles :
hostname: nom dâhĂŽte du Gateway.message: texte aplati du message de journal pour la recherche plein texte.agent_id: id de lâagent actif lorsque lâappel de journal porte un contexte dâagent.session_id: id/clĂ© de session active lorsque lâappel de journal porte un contexte de session.channel: canal actif lorsque lâappel de journal porte un contexte de canal.
OpenClaw conserve les arguments de journal structurĂ©s dâorigine Ă cĂŽtĂ© de ces champs afin que les analyseurs existants qui lisent les clĂ©s dâarguments tslog numĂ©rotĂ©es continuent de fonctionner.
Les activitĂ©s de conversation, de voix en temps rĂ©el et de salons gĂ©rĂ©s Ă©mettent des enregistrements bornĂ©s de journal de cycle de vie via ce mĂȘme pipeline de journaux de fichiers. Ces enregistrements incluent le type dâĂ©vĂ©nement, le mode, le transport, le fournisseur et les mesures de taille/temps lorsquâils sont disponibles, mais omettent le texte de transcription, les charges utiles audio, les ids de tours, les ids dâappels et les ids dâĂ©lĂ©ments fournisseur.
Sortie console
Les journaux console sont compatibles TTY et formatés pour la lisibilité :
- Préfixes de sous-systÚme (par exemple
gateway/channels/whatsapp) - Coloration par niveau (info/warn/error)
- Mode compact ou JSON facultatif
Le formatage console est contrÎlé par logging.consoleStyle.
Journaux WebSocket du Gateway
openclaw gateway dispose aussi dâune journalisation du protocole WebSocket pour le trafic RPC :
- mode normal : uniquement les rĂ©sultats intĂ©ressants (erreurs, erreurs dâanalyse, appels lents)
--verbose: tout le trafic requĂȘte/rĂ©ponse--ws-log auto|compact|full: choisir le style de rendu dĂ©taillĂ©--compact: alias de--ws-log compact
Exemples :
openclaw gatewayopenclaw gateway --verbose --ws-log compactopenclaw gateway --verbose --ws-log fullConfigurer la journalisation
Toute la configuration de journalisation se trouve sous logging dans ~/.openclaw/openclaw.json.
{ "logging": { "level": "info", "file": "/tmp/openclaw/openclaw-YYYY-MM-DD.log", "consoleLevel": "info", "consoleStyle": "pretty", "redactSensitive": "tools", "redactPatterns": ["sk-.*"] }}Niveaux de journal
logging.level: niveau des journaux de fichiers (JSONL).logging.consoleLevel: niveau de verbosité de la console.
Vous pouvez remplacer les deux via la variable dâenvironnement OPENCLAW_LOG_LEVEL (par exemple OPENCLAW_LOG_LEVEL=debug). La variable dâenvironnement est prioritaire sur le fichier de configuration, ce qui vous permet dâaugmenter la verbositĂ© pour une seule exĂ©cution sans modifier openclaw.json. Vous pouvez aussi transmettre lâoption globale de CLI --log-level <level> (par exemple, openclaw --log-level debug gateway run), qui remplace la variable dâenvironnement pour cette commande.
--verbose affecte uniquement la sortie console et la verbosité des journaux WS ; il ne modifie pas
les niveaux des journaux de fichiers.
Diagnostics ciblés du transport de modÚle
Lorsque vous dĂ©boguez des appels fournisseur, utilisez des indicateurs dâenvironnement ciblĂ©s au lieu dâaugmenter
tous les journaux Ă debug :
OPENCLAW_DEBUG_MODEL_TRANSPORT=1 openclaw gatewayOPENCLAW_DEBUG_MODEL_PAYLOAD=tools OPENCLAW_DEBUG_SSE=events openclaw gatewayIndicateurs disponibles :
OPENCLAW_DEBUG_MODEL_TRANSPORT=1: Ă©mettre le dĂ©but de requĂȘte, la rĂ©ponse fetch, les en-tĂȘtes SDK, le premier Ă©vĂ©nement de streaming, la fin du flux et les erreurs de transport au niveauinfo.OPENCLAW_DEBUG_MODEL_PAYLOAD=summary: inclure un rĂ©sumĂ© bornĂ© de la charge utile de requĂȘte dans les journaux de requĂȘte de modĂšle.OPENCLAW_DEBUG_MODEL_PAYLOAD=tools: inclure tous les noms dâoutils exposĂ©s au modĂšle dans le rĂ©sumĂ© de la charge utile.OPENCLAW_DEBUG_MODEL_PAYLOAD=full-redacted: inclure un instantanĂ© JSON expurgĂ© et plafonnĂ© de la charge utile. Ă utiliser uniquement pendant le dĂ©bogage ; les secrets sont expurgĂ©s, mais les invites et le texte des messages peuvent encore ĂȘtre prĂ©sents.OPENCLAW_DEBUG_SSE=events: Ă©mettre les temps du premier Ă©vĂ©nement et de fin de flux.OPENCLAW_DEBUG_SSE=peek: Ă©mettre aussi les cinq premiĂšres charges utiles dâĂ©vĂ©nements SSE expurgĂ©es, plafonnĂ©es par Ă©vĂ©nement.OPENCLAW_DEBUG_CODE_MODE=1: Ă©mettre des diagnostics de surface modĂšle du mode code, y compris lorsque les outils fournisseur natifs sont masquĂ©s parce que le mode code possĂšde la surface dâoutils.
Ces indicateurs journalisent via la journalisation normale dâOpenClaw, donc openclaw logs --follow
et lâonglet Journaux de lâinterface de contrĂŽle les affichent. Sans les indicateurs, les mĂȘmes diagnostics
restent disponibles au niveau debug.
Corrélation des traces
Les journaux de fichiers sont en JSONL. Lorsquâun appel de journal porte un contexte de trace de diagnostic valide,
OpenClaw écrit les champs de trace comme clés JSON de premier niveau (traceId, spanId,
parentSpanId, traceFlags) afin que les processeurs de journaux externes puissent corréler la ligne
avec les spans OTEL et la propagation traceparent du fournisseur.
Les requĂȘtes HTTP du Gateway et les trames WebSocket du Gateway Ă©tablissent une portĂ©e interne de trace de requĂȘte.
Les journaux et événements de diagnostic émis dans cette portée asynchrone héritent
de la trace de requĂȘte lorsquâils ne transmettent pas de contexte de trace explicite. Les traces dâexĂ©cution dâagent et
dâappel de modĂšle deviennent des enfants de la trace de requĂȘte active, de sorte que les journaux locaux,
les instantanĂ©s de diagnostic, les spans OTEL et les en-tĂȘtes traceparent de fournisseur fiables peuvent
ĂȘtre reliĂ©s par traceId sans journaliser le contenu brut de la requĂȘte ou du modĂšle.
Les enregistrements de journal de cycle de vie des conversations circulent aussi vers les journaux OTLP lorsque lâexportation des journaux OpenTelemetry est activĂ©e, avec les mĂȘmes attributs bornĂ©s que les journaux de fichiers.
Taille et temps des appels de modĂšle
Les diagnostics dâappel de modĂšle enregistrent des mesures bornĂ©es de requĂȘte/rĂ©ponse sans capturer le contenu brut de lâinvite ou de la rĂ©ponse :
requestPayloadBytes: taille en octets UTF-8 de la charge utile finale de requĂȘte au modĂšleresponseStreamBytes: taille en octets UTF-8 des Ă©vĂ©nements de rĂ©ponse de modĂšle diffusĂ©stimeToFirstByteMs: temps Ă©coulĂ© avant le premier Ă©vĂ©nement de rĂ©ponse diffusĂ©durationMs: durĂ©e totale de lâappel de modĂšle
Ces champs sont disponibles pour les instantanĂ©s de diagnostic, les hooks Plugin dâappel de modĂšle et les spans/mĂ©triques OTEL dâappel de modĂšle lorsque lâexportation des diagnostics est activĂ©e.
Styles de console
logging.consoleStyle :
pretty: lisible par lâhumain, colorĂ©, avec horodatages.compact: sortie plus dense (idĂ©ale pour les longues sessions).json: JSON par ligne (pour les processeurs de journaux).
Expurgation
OpenClaw peut expurger les jetons sensibles avant quâils nâatteignent la sortie console, les journaux de fichiers, les enregistrements de journaux OTLP, le texte de transcription de session persistant ou les charges utiles dâĂ©vĂ©nements dâoutils de lâinterface de contrĂŽle (arguments de dĂ©marrage dâoutil, charges utiles de rĂ©sultat partiel/final, sortie exec dĂ©rivĂ©e et rĂ©sumĂ©s de correctifs) :
logging.redactSensitive:off|tools(par dĂ©faut :tools)logging.redactPatterns: liste de chaĂźnes regex pour remplacer lâensemble par dĂ©faut. Les motifs personnalisĂ©s sâappliquent en plus des valeurs intĂ©grĂ©es par dĂ©faut pour les charges utiles dâoutils de lâinterface de contrĂŽle ; ajouter un motif nâaffaiblit donc jamais lâexpurgation des valeurs dĂ©jĂ capturĂ©es par les valeurs par dĂ©faut.
Les journaux de fichiers et les transcriptions de session restent en JSONL, mais les valeurs secrĂštes correspondantes sont masquĂ©es avant lâĂ©criture de la ligne ou du message sur disque. Lâexpurgation est au mieux : elle sâapplique au contenu de message textuel et aux chaĂźnes de journal, pas Ă chaque identifiant ou champ de charge utile binaire.
Les valeurs intĂ©grĂ©es par dĂ©faut couvrent les identifiants dâAPI courants 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 lorsquâils apparaissent comme champs JSON, paramĂštres dâURL, indicateurs CLI ou affectations.
logging.redactSensitive: "off" désactive uniquement cette politique générale de journaux/transcriptions.
OpenClaw continue dâexpurger les charges utiles de frontiĂšre de sĂ©curitĂ© qui peuvent ĂȘtre affichĂ©es aux clients dâinterface utilisateur,
aux bundles de support, aux observateurs de diagnostics, aux invites dâapprobation ou aux outils dâagent.
Exemples : Ă©vĂ©nements dâappel dâoutil de lâinterface de contrĂŽle, sortie sessions_history,
exports de support de diagnostics, observations dâerreurs fournisseur, affichage de commande dâapprobation exec
et journaux de protocole WebSocket du Gateway. Les logging.redactPatterns personnalisés
peuvent toujours ajouter des motifs propres au projet sur ces surfaces.
Diagnostics et OpenTelemetry
Les diagnostics sont des Ă©vĂ©nements structurĂ©s, lisibles par machine, pour les exĂ©cutions de modĂšle et la tĂ©lĂ©mĂ©trie de flux de messages (webhooks, mise en file dâattente, Ă©tat de session). Ils ne remplacent pas les journaux : ils alimentent les mĂ©triques, traces et exportateurs. Les Ă©vĂ©nements sont Ă©mis dans le processus, que vous les exportiez ou non.
Deux surfaces adjacentes :
- Export OpenTelemetry â envoyer des mĂ©triques, traces et journaux via OTLP/HTTP Ă nâimporte quel collecteur ou backend compatible OpenTelemetry (Grafana, Datadog, Honeycomb, New Relic, Tempo, etc.). La configuration complĂšte, le catalogue de signaux, les noms de mĂ©triques/spans, les variables dâenvironnement et le modĂšle de confidentialitĂ© se trouvent sur une page dĂ©diĂ©e : Export OpenTelemetry.
- Indicateurs de diagnostics â indicateurs de journal de dĂ©bogage ciblĂ©s qui dirigent des journaux supplĂ©mentaires vers
logging.filesans augmenterlogging.level. Les indicateurs sont insensibles Ă la casse et prennent en charge les jokers (telegram.*,*). Configurez-les sousdiagnostics.flagsou via le remplacement dâenvironnementOPENCLAW_DIAGNOSTICS=.... Guide complet : Indicateurs de diagnostics.
Pour activer les événements de diagnostics pour les plugins ou les collecteurs personnalisés sans export OTLP :
{ diagnostics: { enabled: true },}Pour lâexport OTLP vers un collecteur, consultez Export OpenTelemetry.
Conseils de dépannage
- Gateway injoignable ? ExĂ©cutez dâabord
openclaw doctor. - Journaux vides ? VĂ©rifiez que le Gateway est en cours dâexĂ©cution et Ă©crit dans le chemin de fichier
défini dans
logging.file. - Besoin de plus de détails ? Réglez
logging.levelsurdebugoutrace, puis réessayez.
Connexe
- Export OpenTelemetry â export OTLP/HTTP, catalogue de mĂ©triques/spans, modĂšle de confidentialitĂ©
- Indicateurs de diagnostics â indicateurs de journal de dĂ©bogage ciblĂ©s
- Internes de journalisation du Gateway â styles de journaux WS, prĂ©fixes de sous-systĂšme et capture console
- RĂ©fĂ©rence de configuration â rĂ©fĂ©rence complĂšte des champs
diagnostics.*