Skip to content

System Logs

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

Level Description
DEBUG Detailed diagnostic information (only written when LOG_DEBUG=true)
INFO General operational events (sync started, backup created, etc.)
WARN Potential issues that don’t prevent operation
ERROR Failures that require attention
Category Description
BACKEND Core application logic events
API API route handling and request processing
DB Database 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.