Logging

Für eine benutzerorientierte Übersicht (CLI + Control UI + Konfiguration) siehe /logging.

OpenClaw hat zwei Log-”Oberflächen”:

  • Konsolenausgabe (was du im Terminal / der Debug-UI siehst).
  • Datei-Logs (JSON-Zeilen), geschrieben vom Gateway-Logger.

Dateibasierter Logger

  • Standard-Rollierende-Logdatei liegt unter /tmp/openclaw/ (eine Datei pro Tag): openclaw-YYYY-MM-DD.log
    • Das Datum verwendet die lokale Zeitzone des Gateway-Hosts.
  • Logdatei-Pfad und -Level können über ~/.openclaw/openclaw.json konfiguriert werden:
    • logging.file
    • logging.level

Das Dateiformat ist ein JSON-Objekt pro Zeile.

Der Control-UI-Logs-Tab liest diese Datei per Tail über das Gateway (logs.tail). Die CLI kann das Gleiche:

openclaw logs --follow

Verbose vs. Log-Levels

  • Datei-Logs werden ausschließlich durch logging.level gesteuert.
  • --verbose beeinflusst nur die Konsolen-Verbosität (und den WS-Log-Stil); es erhöht nicht das Datei-Log-Level.
  • Um Verbose-only-Details in Datei-Logs zu erfassen, setze logging.level auf debug oder trace.

Konsolen-Capture

Die CLI fängt console.log/info/warn/error/debug/trace ab und schreibt sie in Datei-Logs, während sie weiterhin auf stdout/stderr ausgegeben werden.

Du kannst die Konsolen-Verbosität unabhängig anpassen über:

  • logging.consoleLevel (Standard info)
  • logging.consoleStyle (pretty | compact | json)

Tool-Summary-Redaktion

Ausführliche Tool-Summaries (z. B. 🛠️ Exec: ...) können sensible Token maskieren, bevor sie den Konsolen-Stream erreichen. Das betrifft nur Tools und ändert keine Datei-Logs.

  • logging.redactSensitive: off | tools (Standard: tools)
  • logging.redactPatterns: Array von Regex-Strings (überschreibt Standards)
    • Verwende rohe Regex-Strings (auto gi), oder /pattern/flags für benutzerdefinierte Flags.
    • Treffer werden maskiert, indem die ersten 6 + letzten 4 Zeichen beibehalten werden (Länge >= 18), ansonsten ***.
    • Die Standards decken gängige Schlüsselzuweisungen, CLI-Flags, JSON-Felder, Bearer-Header, PEM-Blöcke und populäre Token-Präfixe ab.

Gateway-WebSocket-Logs

Das Gateway gibt WebSocket-Protokoll-Logs in zwei Modi aus:

  • Normaler Modus (kein --verbose): Nur “interessante” RPC-Ergebnisse werden ausgegeben:
    • Fehler (ok=false)
    • Langsame Aufrufe (Standard-Schwelle: >= 50ms)
    • Parse-Fehler
  • Verbose-Modus (--verbose): Gibt den gesamten WS-Request/Response-Verkehr aus.

WS-Log-Stil

openclaw gateway unterstützt einen Gateway-spezifischen Stilschalter:

  • --ws-log auto (Standard): Normalmodus ist optimiert; Verbose-Modus verwendet kompakte Ausgabe
  • --ws-log compact: Kompakte Ausgabe (gepaarter Request/Response) im Verbose-Modus
  • --ws-log full: Volle Ausgabe pro Frame im Verbose-Modus
  • --compact: Alias für --ws-log compact

Beispiele:

# optimiert (nur Fehler/langsam)
openclaw gateway

# gesamten WS-Verkehr anzeigen (gepaart)
openclaw gateway --verbose --ws-log compact

# gesamten WS-Verkehr anzeigen (volle Meta)
openclaw gateway --verbose --ws-log full

Konsolenformatierung (Subsystem-Logging)

Der Konsolenformatter ist TTY-bewusst und gibt konsistente, präfixierte Zeilen aus. Subsystem-Logger halten die Ausgabe gruppiert und übersichtlich.

Verhalten:

  • Subsystem-Präfixe in jeder Zeile (z. B. [gateway], [canvas], [tailscale])
  • Subsystem-Farben (stabil pro Subsystem) plus Level-Einfärbung
  • Farbe wenn Ausgabe ein TTY ist oder die Umgebung nach einem Rich-Terminal aussieht (TERM/COLORTERM/TERM_PROGRAM), respektiert NO_COLOR
  • Gekürzte Subsystem-Präfixe: Entfernt führendes gateway/ + channels/, behält letzte 2 Segmente (z. B. whatsapp/outbound)
  • Sub-Logger nach Subsystem (Auto-Präfix + strukturiertes Feld { subsystem })
  • logRaw() für QR-/UX-Ausgabe (kein Präfix, keine Formatierung)
  • Konsolen-Stile (z. B. pretty | compact | json)
  • Konsolen-Log-Level getrennt vom Datei-Log-Level (Datei behält volle Details, wenn logging.level auf debug/trace gesetzt ist)
  • WhatsApp-Nachrichteninhalte werden auf debug-Level geloggt (verwende --verbose um sie zu sehen)

Das hält bestehende Datei-Logs stabil und macht die interaktive Ausgabe übersichtlich.