Skip to main content
Each GenieACS service produces two independent log streams:
StreamDefault destinationPurpose
Process logstderrApplication events (startup, errors, session activity)
Access logstdoutIncoming HTTP requests

Log format

Both streams support two formats, controlled by environment variables.

Process log format

Set with GENIEACS_LOG_FORMAT. Applies to the process log of all four services.
ValueDescription
simpleHuman-readable text (default)
jsonStructured JSON — recommended for log aggregation pipelines

Access log format

Set with GENIEACS_ACCESS_LOG_FORMAT. Applies to the access log of all four services.
ValueDescription
simpleHuman-readable text (default)
jsonStructured JSON — recommended for log aggregation pipelines

Per-service log file variables

By default, logs go to stderr (process) and stdout (access). To write logs to files instead, set the corresponding environment variable for each service.
VariableDefaultDescription
GENIEACS_CWMP_LOG_FILEunset (stderr)Process log for genieacs-cwmp
GENIEACS_CWMP_ACCESS_LOG_FILEunset (stdout)Access log for genieacs-cwmp
GENIEACS_NBI_LOG_FILEunset (stderr)Process log for genieacs-nbi
GENIEACS_NBI_ACCESS_LOG_FILEunset (stdout)Access log for genieacs-nbi
GENIEACS_FS_LOG_FILEunset (stderr)Process log for genieacs-fs
GENIEACS_FS_ACCESS_LOG_FILEunset (stdout)Access log for genieacs-fs
GENIEACS_UI_LOG_FILEunset (stderr)Process log for genieacs-ui
GENIEACS_UI_ACCESS_LOG_FILEunset (stdout)Access log for genieacs-ui

Debug logging

The debug log records the raw CWMP SOAP messages exchanged between GenieACS and CPE devices. It is useful for diagnosing protocol-level issues.
VariableDefaultDescription
GENIEACS_DEBUG_FILEunsetPath to write the CWMP protocol trace file
GENIEACS_DEBUG_FORMATyamlFormat for debug log entries: yaml or json
Debug logging generates large files quickly. Enable it only when actively troubleshooting a specific device or session, and disable it when done.

Viewing logs with systemd

If GenieACS runs as systemd units, use journalctl to tail the logs:
journalctl -u genieacs-cwmp -f
journalctl -u genieacs-nbi -f

Log rotation with logrotate

When writing logs to files, configure log rotation to prevent unbounded disk usage. The following logrotate configuration rotates logs daily, keeps 30 days of compressed history, and uses date-based filenames:
/var/log/genieacs/*.log /var/log/genieacs/*.yaml {
    daily
    rotate 30
    compress
    delaycompress
    dateext
}
Place this configuration in /etc/logrotate.d/genieacs.