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 :

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 :

bash
openclaw logs --follow

Options 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Ă©e
  • notice : indications de troncature / rotation
  • raw : 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 :

bash
openclaw doctor

Interface 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 :

bash
openclaw channels logs --channel whatsapp

Formats 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 :

bash
openclaw gatewayopenclaw gateway --verbose --ws-log compactopenclaw gateway --verbose --ws-log full

Configurer la journalisation

Toute la configuration de journalisation se trouve sous logging dans ~/.openclaw/openclaw.json.

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 :

bash
OPENCLAW_DEBUG_MODEL_TRANSPORT=1 openclaw gatewayOPENCLAW_DEBUG_MODEL_PAYLOAD=tools OPENCLAW_DEBUG_SSE=events openclaw gateway

Indicateurs 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 niveau info.
  • 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Ăšle
  • responseStreamBytes : taille en octets UTF-8 des Ă©vĂ©nements de rĂ©ponse de modĂšle diffusĂ©s
  • timeToFirstByteMs : 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.file sans augmenter logging.level. Les indicateurs sont insensibles Ă  la casse et prennent en charge les jokers (telegram.*, *). Configurez-les sous diagnostics.flags ou via le remplacement d’environnement OPENCLAW_DIAGNOSTICS=.... Guide complet : Indicateurs de diagnostics.

Pour activer les événements de diagnostics pour les plugins ou les collecteurs personnalisés sans export OTLP :

json5
{  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.level sur debug ou trace, puis rĂ©essayez.

Connexe

Was this useful?
On this page

On this page