Skip to content

Daemon log

This page is about the daemon’s own log: what runwisp daemon writes to stderr, which ends up in docker logs or journalctl. The output of your tasks is stored per run; see Run logs.

2026-05-27 14:03:01 [INFO] run started task=backup run=01J...
2026-05-27 14:03:04 [INFO] run succeeded task=backup run=01J... exit=0 dur=3.5s
2026-05-27 14:07:00 [WARN] run failed task=report run=01J... exit=2 reason=failed dur=412ms

The daemon writes one line when a run starts, succeeds, or fails, plus a warning when a task hits the disk-space limit. Around those are startup, readiness, and shutdown lines.

The log is set with flags and environment variables, not in runwisp.toml.

Terminal window
runwisp daemon --log-level debug
RUNWISP_LOG_LEVEL=debug runwisp daemon

debug, info (default), warn, or error. Any other value is an error at startup.

Terminal window
RUNWISP_LOG_FORMAT=json runwisp daemon
Value Output
auto (default) 2026-… [INFO] message key=value lines, colored only on a terminal.
text The same lines, never colored.
json One JSON object per line, for log pipelines.
{
"time": "2026-05-27T14:03:04.918+02:00",
"level": "INFO",
"msg": "run succeeded",
"task": "backup",
"run": "01J...",
"exit": 0,
"dur": 3500000000
}

When stderr isn’t a terminal (Docker, journald, a file), the daemon drops color and replaces the startup banner with a few plain [INFO] lines carrying the same facts: version, paths, task count, warnings. NO_COLOR also turns color off on a terminal.

Text lines carry a local 2026-05-27 14:03:01 timestamp. Under systemd (detected by JOURNAL_STREAM), the daemon leaves it out because journald adds its own. JSON always has a full RFC 3339 time field.

Once the API answers, the daemon logs:

[INFO] ready, listening url=http://localhost:9477

The URL uses external_url when set, and shows a 0.0.0.0 bind as localhost.

On Ctrl+C or SIGTERM, it names the signal, logs each shutdown step, and prints the total time:

[INFO] received signal, shutting down signal=interrupt
[INFO] draining HTTP requests and closing station connection
[INFO] stopping scheduler and waiting for in-flight runs in_flight=1 timeout=30s
[INFO] shutdown complete elapsed=842ms