Skip to content

Logging

Dolos outputs logs through stdout. Internally, it uses a tracing mechanism that groups logs into hierarchical blocks called spans that holds data describing the context where the event occurred.

Depending on your use-case, the amount and detail of these logs might be overwhelming. Dolos provides a set of configuration values that allows you to opt-in into different levels of detail.

Log Levels

Dolos follows a very common convention around log levels. These levels describe discrete categories of decreasing severity.

leveldescription
errorunexpected errors, stuff that shouldn’t occur
warnwarning about things that are expected but require attention
infonormal operation events that are relevant for day-to-day operations
debugnormal operation events with a level of detail useful for debugging problems
traceextreme level of detail, usually including data being processed

Sub-components

There are some sub-components within Dolos that are more verbose than others. By default, logs from these components are suppressed. You can opt-in to include them as needed:

componentdescription
tokioThe async runtime
pallasLow-level Ouroboros interactions (mini-protocols, CBOR decoding)
grpcThe gRPC server (UTxO RPC)
trpThe Transaction Resolver Protocol server
minibfThe Mini-Blockfrost HTTP server
minikupoThe Mini-Kupo HTTP server
otlpOpenTelemetry exporters
fjallThe Fjall storage engine

Configuration

The [logging] section within dolos.toml controls these options:

propertytypedefault
max_levelstring"info"
include_tokiobooleanfalse
include_pallasbooleanfalse
include_grpcbooleanfalse
include_trpbooleanfalse
include_minibfbooleanfalse
include_minikupobooleanfalse
include_otlpbooleanfalse
include_fjallbooleanfalse
  • max_level: the maximum severity level of events to include in the output. By selecting a specific level, you include that level and every level of higher severity.
  • include_*: flags that indicate if the output should include logs from the corresponding sub-component.

All fields are optional. Omitted values use the defaults shown above.

Example:

[logging]
max_level = "debug"
include_pallas = true
include_grpc = true

You can find more detailed info about configuration in the configuration schema section.