Skip to main content

logging

logging:
level: info
format: text
#disable_timestamp: true

logging.level​

Default: info Reloadable

Controls the verbosity of logs. The options are trace, debug, info, warn (or warning), and error. fatal and panic are accepted as aliases for error.

warning

Debug and trace logging can log remotely controlled, untrusted data, which can quickly fill a disk in some scenarios. They are also CPU intensive and decrease overall performance. Only enable them while actively investigating an issue.

The level can also be changed at runtime with the log-level debug command. A config reload sets it back to the configured value.

logging.format​

Default: text Reloadable

Controls the logging format. The options are json or text.

logging.disable_timestamp​

Default: false Reloadable

Disables timestamp logging. Useful when output is redirected to logging system that already adds timestamps.

Timestamps are always RFC3339. The text format uses millisecond precision, e.g. 2026-10-28T14:03:07.120-04:00, and the json format uses up to nanosecond precision with trailing zeros dropped, e.g. 2026-10-28T14:03:07.12034567-04:00. logging.timestamp_format was removed in v1.11.0.

Rate limited messages​

Some errors that can repeat for every packet are logged at most once per second each. The next line logged carries a suppressed field with the number of lines skipped. These are:

  • Failed to write outgoing packet
  • Failed to WriteTo in sendVia
  • Dropping outbound packet, out buffer not large enough