Radiator Server Documentation — v10.34.0

Logging

Overview of application and AAA logging, log targets, formats, promotion, and rotation

Table of Contents
  • Overview
  • Application and AAA logs
  • Log targets
  • Log levels and resource use
  • Formats and fields
  • Application messages and counters
  • Log promotion
  • Troubleshooting
  • Log rotation

Overview

Radiator has application logs for server events and configurable AAA logs for authentication, authorization, and accounting data. Configure both under the logging block.

Application and AAA logs

Application logs record startup, configuration, protocol, backend, and other server events. Each message and its fields are defined by Radiator.

AAA logs contain operator-selected data from AAA processing. Define named aaa loggers, then write to them with the log action.

Log targets

Application and AAA loggers support these targets:

TargetPurposeConfiguration
MemoryKeeps recent rows in RAM for the management UImemory
ConsoleWrites to standard output for containers, journald, and developmentconsole
FileWrites persistent local log filesfile
SyslogSends rows to a local or remote syslog servicesyslog

Configure application targets under logging application. Configure AAA targets inside each named AAA logger.

Log levels and resource use

Use info for normal production operation. The debug and trace levels can generate many rows and reduce throughput, especially for high-volume protocols. Set the minimum level separately for each target with loglevel.

Logging is asynchronous and writes rows in batches. A row can remain incomplete in an actively written file for a few milliseconds.

Formats and fields

Radiator supports traditional text and JSON application log formats. JSON is recommended when logs are collected or filtered automatically.

{
  "timestamp": "2025-12-20T11:36:34.134423+02:00",
  "level": "INFO",
  "instance_id": "R00",
  "row_id": "b62e6726-24f4-4b7f-ac5f-b0c5f1597bee",
  "namespace": ["configuration"],
  "message": "Loading configuration done",
  "fields": {
    "configuration": "radiator-server.radconf"
  }
}

The equivalent traditional row is:

2025-12-20T11:36:34.134423+02:00 configuration INFO Loading configuration done (configuration=radiator-server.radconf)

Use message as the stable event identity. The namespace identifies the component that produced the row, and fields contains event-specific details. See namespaces for the hierarchy used by logs and counters. Fields can be added over time, and their order is not stable.

All timestamps use RFC 3339 and the operating system time zone. Set the TZ environment variable before starting Radiator to select another time zone:

TZ=UTC radiator --configuration ...

The --json-log-format command-line option selects JSON for all log targets. Target-specific format options are documented on the linked target configuration pages.

Application messages and counters

The application log message index groups documented messages by their normal level. Each message page provides its levels and short operator guidance.

Promoted application messages have counters that increment for every occurrence, even when no row is written. View counters in the management UI or export them through OpenMetrics. Counter paths use the same namespaces as application logs.

Log promotion

Radiator can promote selected recurring application messages to a higher level while limiting log volume. Promotion does not change or disable their counters. See logging promotion for behavior and configuration.

<a id="pipeline-trace-logging"></a> <a id="low-level-radius-packet-and-eap-message-tracing"></a>

Troubleshooting

Use the debug action to write selected values while troubleshooting a pipeline. Use the trace action to trace only selected AAA requests without enabling global trace logging.

Protect trace logs as sensitive data. Protocol and AAA trace rows can contain identities, attributes, and session details.

Log rotation

File loggers support rotation by schedule, file size, or both. They can also retain and compress default rotated files. See file logger rotation for the configuration and retention rules.

For external rotation, rename the active file with an atomic file-system operation. Radiator detects the missing active path and creates a new file. Allow outstanding rows to finish before compressing the renamed file.

Navigation
  • Application log message index

  • Architecture Overview

  • Backend Load Balancing

  • Basic Installation

  • Built-in Environment Variables

  • Byte Size Units

  • Certificate Revocation Lists

  • Comparison Operators

  • Configuration Editor

  • Configuration Import and Export

  • Containers

  • Cron and interval timers

  • Data Types

  • Duration Units

  • Environment Variables

  • Execution Context

  • Execution Pipelines

  • Filters

  • Getting a Radiator License

  • Health check /live and /ready

  • High Availability and Load Balancing

  • High availability identifiers

  • HTTP Basic Authentication

  • Introduction

  • Linux systemd support

  • Local AAA Backends

  • Logging

  • Management API privilege levels

  • Namespaces

  • Password Hashing

  • Password Rehashing During Login

  • Probabilistic Sampling

  • Prometheus and OpenMetrics scraping

  • PROXY Protocol Support

  • Radiator server health and boot up logic

  • Radiator sizing

  • Radiator software releases

  • Radiator software security and dependency compliance

  • RadiatorDB

  • RadiatorDB Backup

  • RadiatorDB CLI

  • RadiatorDB Installation

  • RadiatorDB PostgreSQL 10k TPS example

  • RadiatorDB REST API

  • RadiatorDB sizing

  • Rate Limiting

  • Rate Limiting Algorithms

  • Reverse Dynamic Authorization

  • Service Level Objective

  • TACACS+ Authentication, Authorization, and Accounting

  • Template Rendering CLI

  • Timestamps

  • Tools radiator-client

  • TOTP/HOTP Authentication

  • What is Radiator?

  • YubiKey Authentication

  • YubiKey Context Variables