Skip to content

Configure Arion's application log: levels and per-module filters, stdout or rolling files, and timestamp timezone.

The application log is what the Arion process says about itself — startup, configuration loading, xDS updates, warnings and errors. Use it to diagnose the gateway; per-request traffic belongs in access logs, which are a separate system.

Enable it

Logging is always on. By default Arion writes to stdout at info level during startup, then applies the level from your configuration. The top-level logging section controls it:

logging:
  log_level: "info"

log_level accepts a level (error, warn, info, debug, trace) or a full filter expression with per-module targets, in the same syntax as the RUST_LOG environment variable — for example info,arion_lib=debug raises only the proxy library to debug.

Variations

Set the level from the environment

RUST_LOG always wins over the configuration file:

RUST_LOG=debug arion --config /etc/arion/arion.yaml

The precedence is: RUST_LOG, then logging.log_level, then errors only. Setting the environment variable is the quickest way to turn on debug output for one run without editing the file.

Log to a file

Set log_file to switch output from stdout to a rolling file. log_directory chooses where it goes (default: the working directory). Files rotate hourly.

logging:
  log_level: "info"
  log_directory: /var/log/arion
  log_file: arion.log

Timestamps and timezone

Each line carries a microsecond-precision timestamp with a numeric offset, plus the thread name (proxy_RT0, services, ...), which tells you which runtime emitted it. Timestamps are UTC unless you set the top-level timezone section:

timezone:
  local: "Europe/Rome"

Any IANA timezone name works and applies to the application log and to access-log %START_TIME% alike. Daylight-saving transitions are tracked automatically.

Verify

Start Arion and check the first lines on stdout:

arion --config /etc/arion/arion.yaml

Expected output includes lines like:

2026-09-28T10:15:04.512345+0000  INFO main arion_proxy::proxy: Launching Service runtime with 1 threads
2026-09-28T10:15:04.514820+0000  INFO main arion_proxy::proxy: Launching 1 Proxy runtime(s) with 4 thread(s) each

If you see nothing after startup, remember the post-startup default without RUST_LOG or logging.log_level is errors only.

Limits

  • Output goes to stdout or to one rolling file — there is no syslog or network log shipper; run under systemd or a container runtime and collect it there.
  • File output rotates hourly; the schedule is not configurable (unlike access-log rotation).
  • Writes are asynchronous and non-blocking; a hard kill can lose the last buffered lines.
  • There is no built-in redaction. debug and trace are verbose and can include request and configuration details, so keep production at info or above and treat debug logs as sensitive.

For the full list of environment variables Arion reads, see the environment variable reference.

Continue

Start typing to search the site.

↑ ↓ to move Enter to open Esc to close