Logging
Für einen benutzerorientierten Überblick (CLI + Control UI + Konfiguration) siehe /logging. OpenClaw hat zwei Log-„Oberflächen“:- Konsolenausgabe (das, was Sie im Terminal / in der Debug-UI sehen).
- Dateilogs (JSON-Zeilen), die vom Gateway-Logger geschrieben werden.
Dateibasierter Logger
- Die standardmäßige rotierende Logdatei liegt unter
/tmp/openclaw/(eine Datei pro Tag):openclaw-YYYY-MM-DD.log- Das Datum verwendet die lokale Zeitzone des Gateway-Hosts.
- Der Pfad und das Level der Logdatei können über
~/.openclaw/openclaw.jsonkonfiguriert werden:logging.filelogging.level
logs.tail).
Die CLI kann dasselbe tun:
- Dateilogs werden ausschließlich durch
logging.levelgesteuert. --verbosebeeinflusst nur die Konsolen-Verbosity (und den WS-Log-Stil); es erhöht nicht das Dateilog-Level.- Um ausschließlich-verbose Details in Dateilogs zu erfassen, setzen Sie
logging.levelaufdebugodertrace.
Konsolen-Erfassung
Die CLI erfasstconsole.log/info/warn/error/debug/trace und schreibt sie in die Dateilogs,
während sie weiterhin nach stdout/stderr ausgibt.
Sie können die Konsolen-Verbosity unabhängig einstellen über:
logging.consoleLevel(Standardinfo)logging.consoleStyle(pretty|compact|json)
Schwärzung von Tool-Zusammenfassungen
Ausführliche Tool-Zusammenfassungen (z. B.🛠️ Exec: ...) können sensible Tokens maskieren, bevor sie den
Konsolenstrom erreichen. Dies gilt nur für Tools und verändert keine Dateilogs.
logging.redactSensitive:off|tools(Standard:tools)logging.redactPatterns: Array von Regex-Strings (überschreibt Standardwerte)- Verwenden Sie rohe Regex-Strings (automatisch
gi), oder/pattern/flags, wenn Sie benutzerdefinierte Flags benötigen. - Treffer werden maskiert, indem die ersten 6 + die letzten 4 Zeichen beibehalten werden (Länge >= 18), andernfalls
***. - Die Standardwerte decken gängige Schlüsselzuweisungen, CLI-Flags, JSON-Felder, Bearer-Header, PEM-Blöcke und verbreitete Token-Präfixe ab.
- Verwenden Sie rohe Regex-Strings (automatisch
Gateway-WebSocket-Logs
Das Gateway gibt WebSocket-Protokolllogs in zwei Modi aus:- Normalmodus (kein
--verbose): es werden nur „interessante“ RPC-Ergebnisse ausgegeben:- Fehler (
ok=false) - langsame Aufrufe (Standard-Schwellenwert:
>= 50ms) - Parse-Fehler
- Fehler (
- Verbose-Modus (
--verbose): gibt den gesamten WS-Anfrage/Antwort-Verkehr aus.
WS-Log-Stil
openclaw gateway unterstützt einen Gateway-spezifischen Stilwechsel:
--ws-log auto(Standard): Normalmodus ist optimiert; Verbose-Modus verwendet kompakte Ausgabe--ws-log compact: kompakte Ausgabe (gepaarte Anfrage/Antwort) bei Verbose--ws-log full: vollständige Ausgabe pro Frame bei Verbose--compact: Alias für--ws-log compact
Konsolenformatierung (Subsystem-Logging)
Der Konsolen-Formatter ist TTY-bewusst und gibt konsistente, präfixierte Zeilen aus. Subsystem-Logger halten die Ausgabe gruppiert und gut scannbar. Verhalten:- Subsystem-Präfixe in 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 reichhaltiges Terminal wirkt (
TERM/COLORTERM/TERM_PROGRAM), berücksichtigtNO_COLOR - Verkürzte Subsystem-Präfixe: entfernt führende
gateway/+channels/, behält die letzten 2 Segmente (z. B.whatsapp/outbound) - Sub-Logger nach Subsystem (automatisches Präfix + strukturiertes Feld
{ subsystem }) logRaw()für QR/UX-Ausgabe (kein Präfix, keine Formatierung)- Konsolenstile (z. B.
pretty | compact | json) - Konsolen-Log-Level getrennt vom Dateilog-Level (Datei behält volle Details, wenn
logging.levelaufdebug/tracegesetzt ist) - WhatsApp-Nachrichteninhalte werden auf
debuggeloggt (verwenden Sie--verbose, um sie zu sehen)