Skip to content

System Logs

The System Logs page provides a centralized view of application events stored in the database.

LevelDescription
DEBUGDetailed diagnostic information (only written when LOG_DEBUG=true)
INFOGeneral operational events (sync started, backup created, etc.)
WARNPotential issues that don’t prevent operation
ERRORFailures that require attention
CategoryDescription
BACKENDCore application logic events
APIAPI route handling and request processing
DBDatabase operations and queries

The logs page displays:

  • Timestamp — when the event occurred
  • Level — severity (DEBUG, INFO, WARN, ERROR)
  • Category — source category (BACKEND, API, DB)
  • Source — specific component or function
  • Message — description of the event
  • Meta — additional contextual data (JSON)

Filter logs by:

  • Level — show only specific severity levels
  • Category — filter by source category
  • Source — filter by specific component
  • Search — free text search across log messages

Configure log retention in Settings → General → Log Retention:

  • Range: 1 to 365 days (default: 7)
  • Logs older than today are automatically archived to compressed .tar.gz files and removed from the database
  • Archive files older than the retention period are automatically pruned

Archived logs are stored in /config/logs (configurable via the LOG_ARCHIVE_DIR environment variable). Each archive contains a single day’s logs in JSON format.

You can browse and download archived logs via the System Logs page or the /api/system/logs/archives API endpoint.

Logs are written to two destinations simultaneously:

  1. Database — the LogEntry table, accessible via the System Logs UI
  2. Console — visible via docker logs or your container runtime

This means you can view recent logs in the web UI and full container output via Docker.