Logging
Für eine nutzerorientierte Übersicht (CLI + Control-UI + Konfiguration) siehe Protokollierung. OpenClaw hat zwei Log-„Oberflächen“:
- Konsolenausgabe (was Sie im Terminal / in der Debug-UI sehen).
- Datei-Logs (JSON-Zeilen), geschrieben vom Gateway-Logger.
Dateibasierter Logger
- Standard-Rolling-Logdatei liegt unter
/tmp/openclaw/(eine Datei pro Tag):openclaw-YYYY-MM-DD.log- Datum nutzt die lokale Zeitzone des Gateway-Hosts.
- Logdateipfad und -level sind über
~/.clawdbot/openclaw.jsonkonfigurierbar:logging.filelogging.level
Das Dateiformat ist ein JSON-Objekt pro Zeile. Der Control-UI-Tab „Logs“ folgt dieser Datei über den Gateway (logs.tail). Die CLI kann dasselbe:
openclaw logs --followVerbose vs. Log-Level
- Datei-Logs werden ausschließlich von
logging.levelgesteuert. --verbosebetrifft nur die Konsolen-Ausführlichkeit (und den WS-Log-Stil); es erhöht nicht das Datei-Log-Level.- Um nur-verbose-Details in Datei-Logs zu erfassen,
logging.levelaufdebugodertracesetzen.
Konsolen-Erfassung
Die CLI fängt console.log/info/warn/error/debug/trace ab und schreibt sie in die Datei-Logs, druckt aber weiter auf stdout/stderr. Die Konsolen-Ausführlichkeit kann unabhängig gesteuert werden über:
logging.consoleLevel(Standardinfo)logging.consoleStyle(pretty|compact|json)
Tool-Zusammenfassungs-Redaktion
Ausführliche Tool-Zusammenfassungen (z. B. 🛠️ Exec: ...) können sensible Tokens maskieren, bevor sie in den Konsolen-Stream gelangen. Das betrifft nur Tools und ändert Datei-Logs nicht.
logging.redactSensitive:off|tools(Standard:tools)logging.redactPatterns: Array von Regex-Strings (überschreibt Defaults)- Rohe Regex-Strings verwenden (automatisch
gi) oder/pattern/flagsbei eigenen Flags. - Treffer werden maskiert, indem die ersten 6 + letzten 4 Zeichen erhalten bleiben (Länge >= 18), sonst
***. - Defaults decken gängige Key-Zuweisungen, CLI-Flags, JSON-Felder, Bearer-Header, PEM-Blöcke und gängige Token-Präfixe ab.
- Rohe Regex-Strings verwenden (automatisch
Gateway-WebSocket-Logs
Der Gateway schreibt WebSocket-Protokoll-Logs in zwei Modi:
- Normaler Modus (ohne
--verbose): nur „interessante“ RPC-Ergebnisse werden ausgegeben:- Fehler (
ok=false) - langsame Aufrufe (Standard-Schwelle:
>= 50ms) - Parse-Fehler
- Fehler (
- Verbose-Modus (
--verbose): gesamter WS-Anfrage-/Antwort-Verkehr wird ausgegeben.
WS-Log-Stil
openclaw gateway unterstützt einen pro-Gateway-Stil-Schalter:
--ws-log auto(Standard): Normalmodus ist optimiert; Verbose-Modus nutzt kompakte Ausgabe--ws-log compact: kompakte Ausgabe (gepaarte Anfrage/Antwort) bei Verbose--ws-log full: vollständige Pro-Frame-Ausgabe bei Verbose--compact: Alias für--ws-log compact
Beispiele:
# optimiert (nur Fehler/langsam)
openclaw gateway
# gesamter WS-Verkehr (gepaart)
openclaw gateway --verbose --ws-log compact
# gesamter WS-Verkehr (volle Meta)
openclaw gateway --verbose --ws-log fullKonsolen-Formatierung (Subsystem-Logging)
Der Konsolen-Formatierer ist TTY-aware und druckt einheitliche, mit Präfix versehene Zeilen. Subsystem-Logger halten die Ausgabe gruppiert und scanbar. Verhalten:
- Subsystem-Präfixe auf jeder Zeile (z. B.
[gateway],[canvas],[tailscale]) - Subsystem-Farben (stabil pro Subsystem) plus Level-Färbung
- Farbe, wenn die Ausgabe ein TTY ist oder die Umgebung wie ein Rich-Terminal aussieht (
TERM/COLORTERM/TERM_PROGRAM), respektiertNO_COLOR - Verkürzte Subsystem-Präfixe: lässt führendes
gateway/+channels/weg, behält die letzten 2 Segmente (z. B.whatsapp/outbound) - Sub-Logger pro Subsystem (automatischer 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.levelaufdebug/tracesteht) - WhatsApp-Nachrichtentexte werden auf
debuggeloggt (mit--verbosesichtbar)
So bleiben die bestehenden Datei-Logs stabil, während die interaktive Ausgabe scanbar bleibt.