Logging
Logging
Section titled “Logging”For a user-facing overview (CLI + Control UI + config), see /docs/logging.
OpenClaw has two log “surfaces”:
- Console output (what you see in the terminal / Debug UI).
- File logs (JSON lines) written by the gateway logger.
File-based logger
Section titled “File-based logger”- Default rolling log file is under
/tmp/openclaw/(one file per day):openclaw-YYYY-MM-DD.log- Date uses the gateway host’s local timezone.
- The log file path and level can be configured via
~/.openclaw/openclaw.json:logging.filelogging.level
The file format is one JSON object per line.
The Control UI Logs tab tails this file via the gateway (logs.tail). CLI can do the same:
openclaw logs --followVerbose vs. log levels
- File logs are controlled exclusively by
logging.level. --verboseonly affects console verbosity (and WS log style); it does not raise the file log level.- To capture verbose-only details in file logs, set
logging.leveltodebugortrace.
Console capture
Section titled “Console capture”The CLI captures console.log/info/warn/error/debug/trace and writes them to file logs, while still printing to stdout/stderr.
You can tune console verbosity independently via:
logging.consoleLevel(defaultinfo)logging.consoleStyle(pretty|compact|json)
Tool summary redaction
Section titled “Tool summary redaction”Verbose tool summaries (e.g. 🛠️ Exec: ...) can mask sensitive tokens before they hit the console stream. This is tools-only and does not alter file logs.
logging.redactSensitive:off|tools(default:tools)logging.redactPatterns: array of regex strings (overrides defaults)- Use raw regex strings (auto
gi), or/pattern/flagsif you need custom flags. - Matches are masked by keeping the first 6 + last 4 chars (length >= 18), otherwise
***. - Defaults cover common key assignments, CLI flags, JSON fields, bearer headers, PEM blocks, and popular token prefixes.
- Use raw regex strings (auto
Gateway WebSocket logs
Section titled “Gateway WebSocket logs”The gateway prints WebSocket protocol logs in two modes:
- Normal mode (no
--verbose): only “interesting” RPC results are printed:- errors (
ok=false) - slow calls (default threshold:
>= 50ms) - parse errors
- errors (
- Verbose mode (
--verbose): prints all WS request/response traffic.
WS log style
Section titled “WS log style”openclaw gateway supports a per-gateway style switch:
--ws-log auto(default): normal mode is optimized; verbose mode uses compact output--ws-log compact: compact output (paired request/response) when verbose--ws-log full: full per-frame output when verbose--compact: alias for--ws-log compact
Examples:
# optimized (only errors/slow)openclaw gateway
# show all WS traffic (paired)openclaw gateway --verbose --ws-log compact
# show all WS traffic (full meta)openclaw gateway --verbose --ws-log fullConsole formatting (subsystem logging)
Section titled “Console formatting (subsystem logging)”The console formatter is TTY-aware and prints consistent, prefixed lines. Subsystem loggers keep output grouped and scannable.