Logging
Overview of application and AAA logging, log targets, formats, promotion, and 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:
| Target | Purpose | Configuration |
|---|---|---|
| Memory | Keeps recent rows in RAM for the management UI | memory |
| Console | Writes to standard output for containers, journald, and development | console |
| File | Writes persistent local log files | file |
| Syslog | Sends rows to a local or remote syslog service | syslog |
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.
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
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