Documentation Index
Fetch the complete documentation index at: https://docs.wednesdayai.dev/llms.txt
Use this file to discover all available pages before exploring further.
Logging
WednesdayAI logs in two places:- File logs — JSON lines written by the gateway to a rolling log file.
- Console output — structured, colorized output in terminals and the control panel.
Where logs live
The gateway writes a rolling log file at:~/.openclaw/openclaw.json:
Reading logs
Live tail (recommended)
| Flag | Effect |
|---|---|
--json | Line-delimited JSON, one event per line |
--plain | Force plain text (no colors) |
--no-color | Disable ANSI colors in TTY mode |
--json mode each line has a type field:
meta— stream metadata (file path, cursor, size)log— parsed log entrynotice— truncation or rotation hintsraw— unparsed line (malformed JSON)
Control panel
The control panel’s Logs tab tails the same file. Access it athttp://localhost:18789/ → Logs.
Channel-specific logs
Systemd journal (Linux)
If the gateway runs as a systemd service:Configuration
All logging settings live underlogging in ~/.openclaw/openclaw.json. Most changes apply immediately (hot-reload); log file path changes require a restart.
Log levels
Available levels (least to most verbose):error → warn → info → debug → trace
Precedence (first wins):
--log-level <level>CLI flagOPENCLAW_LOG_LEVELenv varlogging.level/logging.consoleLevelin config
--verbose affects only console output; it does not change file log levels.
Console styles
| Style | Description |
|---|---|
pretty | Colorized, timestamped, human-readable (default) |
compact | Tighter output — good for long sessions |
json | JSON per line — for log processors and pipelines |
Redaction
redactSensitive: "tools" (default) redacts sensitive-looking values from tool call summaries in console output. File logs and OTLP exports are not affected.
Add custom patterns to redactPatterns to redact additional secrets:
OpenTelemetry export
WednesdayAI can export telemetry — metrics, traces, and logs — via OTLP/HTTP to any OpenTelemetry-compatible collector (Grafana, Jaeger, Honeycomb, Datadog, etc.).Enable diagnostics
What gets exported
Metrics (counters + histograms):| Metric | Description |
|---|---|
openclaw.message.queued | Messages enqueued per channel |
openclaw.message.processed | Messages processed, by outcome |
openclaw.message.duration_ms | Processing latency histogram |
openclaw.model.usage | Token usage, cost, latency per model/provider |
openclaw.webhook.received | Webhook ingress per channel |
openclaw.queue.lane.* | Queue depth, wait time, task completion |
openclaw.session.stuck | Sessions stuck in a state |
openclaw.model.usage, openclaw.webhook.processed, openclaw.message.processed
Logs: exported over OTLP when diagnostics.otel.logs: true. Console redaction does not apply to OTLP log export.
Sampling and flushing
diagnostics.otel.sampleRate: 0.0 (none) to 1.0 (all). Applies to root spans only.diagnostics.otel.flushIntervalMs: how often metrics are flushed. Minimum 1000ms.- High-volume installs should use a local OTel collector with sampling/filtering.
Troubleshooting
Log file is empty
Log file is empty
- Confirm the gateway is running:
openclaw gateway status - Check the configured file path:
openclaw doctor - Check write permissions on the log directory
- Verify the gateway process has started since the last config change
`openclaw logs` says Gateway is unreachable
`openclaw logs` says Gateway is unreachable
The CLI cannot connect to the gateway RPC socket.If the gateway is running but logs still fail, check that
gateway.rpc is not disabled in config.Need more detail for debugging
Need more detail for debugging
Temporarily raise the log level without editing config:Or for a running daemon:The gateway watches the config file and applies level changes immediately. No restart needed.
OTLP export not working
OTLP export not working
- Confirm diagnostics are enabled:
openclaw doctor - Check the endpoint is reachable from the gateway host:
curl -v http://otel-collector:4318/v1/metrics - Check for OTLP errors in the gateway log:
openclaw logs --follow | grep otlp - If the endpoint already includes
/v1/tracesor/v1/metrics, it is used as-is. Don’t double-append the path.