Skip to content

Logging

Configure Miravo's logging with debug, info, warn, and error levels, JSON format, structured output, tagged subsystem loggers, and event channel streaming.

Miravo uses consola with tagged loggers for each subsystem.

LevelFlagDescription
debug--verboseGenerator evaluations, tick details, adapter internals
infoDefaultStartup, shutdown, periodic summaries, state transitions
warnOverrun warnings, adapter saturation, deprecation notices
errorTick failures, adapter errors, command failures

Set the level:

Terminal window
miravo start --log-level debug
miravo start --verbose # Same as --log-level debug
miravo start -q # Quiet: suppress non-error output

Priority: -q/--quiet > --log-level > --verbose.

Human-readable colored output with tagged prefixes:

[engine] Simulation "smart-factory" started (7 instances, 1 template)
[mqtt] Embedded broker listening on 127.0.0.1:1883
[engine] Tick 30 | 7 instances · 168 values | MQTT: 168 pub · 0 err

Structured JSON, one object per line. Ideal for log aggregation (ELK, Datadog, Loki):

Terminal window
miravo start --log-format json
{"ts":"2026-03-18T10:00:00.000Z","level":"info","tag":"engine","simulationName":"smart-factory","runId":"abc123","message":"Simulation started"}

JSON fields: ts, level, tag, simulationName, runId, message.

No colors or formatting. Useful for CI/CD or piping:

Terminal window
miravo start --plain

Or via environment variable:

Terminal window
NO_COLOR=1 miravo start

Each subsystem has a tagged logger:

TagSubsystem
engineCore engine, scheduler, lifecycle
mqttMQTT adapter, broker, control transport
opcuaOPC UA adapter, server, address space
adminAdmin HTTP server
cliCLI command processing

Every 30 seconds (configurable with --summary-interval), Miravo logs a summary line:

Tick 1800 | 7 instances · 168 values | MQTT: 302,400 pub · 0 err | OPC UA: disabled

This includes tick count, instance count, member value count, and per-adapter statistics.

Use miravo logs to stream domain events from a running background simulation:

Stream all events:

Terminal window
miravo logs my-sim

Last 50 events, then stream:

Terminal window
miravo logs my-sim --tail 50

Filter by channel:

Terminal window
miravo logs my-sim --channels faults,lifecycle

Available channels: tick, faults, lifecycle, instances, engine, adapters.