Skip to content

Logs

The Logs page streams Sublarr’s server log into your browser. New lines arrive over WebSocket so you don’t have to refresh, and the last 500 entries are kept in memory for searching and scrolling. When you need to share an issue with maintainers, this is where you copy the relevant lines from.

The page is one big virtualised log viewer with a toolbar on top. The toolbar’s height is fixed so very long log lines don’t push controls off-screen.

ControlEffect
Level dropdownFilter to a minimum severity. WARNING hides INFO and DEBUG; ERROR shows only errors. ALL shows everything.
Search boxSubstring match (case-insensitive) on the entire log line.
Auto-scrollWhen enabled (default), the viewport follows new lines. Toggling off keeps the view still so you can scroll up and read.
DownloadDownloads the anonymised support bundle — see Download for support.

Sublarr’s logger emits four severities. The “level” you set in Settings → System is the minimum severity written to file; the page filter is independent and only narrows what you see in the browser.

LevelWhen you’d raise it to
DEBUGReproducing a bug — verbose request/response and worker traces.
INFODefault. Lifecycle events, scheduler ticks, downloads.
WARNINGProduction where you only care about deviations from the happy path.
ERRORQuiet logs — only failures land.

Sublarr tags each line with a logger name. Settings → System → Diagnostics → Log Viewer Display has a switch per category; switching one off hides its lines on the Logs page. These switches are stored in your browser and only change what you see — the log file is unaffected.

CategoryCovers
ScannerWanted-list and standalone scanner ticks and decisions.
TranslationTranslation pipeline.
ProvidersSubtitle provider searches and downloads.
Background JobsScheduler triggers, workers, job runs.
AuthLogin attempts, lockouts, API-key and proxy-auth checks.

The same section toggles Show timestamps and Wrap long lines. For anything narrower than a category, use the search box with a logger name (for example wanted_scanner or apscheduler).

When opening an issue, the most useful artifact is the support bundle. The recipe:

  1. Set the log level to DEBUG in Settings → System and reproduce the issue once.
  2. Click Download on the Logs page (or Export Support Bundle under Settings → System → Diagnostics).
  3. Attach the ZIP to the issue.

Configured secrets — API keys, provider passwords, database and Redis passwords, the API keys inside Sonarr/Radarr instance lists, notification URLs — are replaced before a log line is written, so they never reach the log file, the live stream or the log viewer. Credential values in request URLs (api_key=…), database URLs with passwords, Bearer tokens, Discord/Slack/Telegram webhook tokens and password=/token=/pin= values are masked as well.

GET /api/v1/logs/download returns an anonymised support bundle as a ZIP. The bundle strips host paths, IP addresses, e-mail addresses and the hostname from the included logs, and adds the context a diagnosis needs:

  • a diagnostic report — version, platform, deployment mode, top errors, wanted and translation statistics;
  • the database migration state;
  • recent scheduler runs;
  • each provider’s circuit-breaker state;
  • queue sizes;
  • the foreign-track sweep state and the track policy;
  • versions of ffmpeg, ffprobe and mkvmerge;
  • the last 500 warnings and errors as their own file (recent-warnings.log);
  • a config snapshot built from an allow-list: only settings known to be harmless appear in clear, everything else is masked — including settings added later.

The included logs are capped at 50 MB, newest first; older rotated files that no longer fit are left out and named in the report. Bundle downloads are limited to 6 per minute.

Pass ?raw=1 to get the plain .log file instead. Configured secrets are masked in it like in every log line, but paths, IP addresses and the hostname are not anonymised. The raw download does not count against the bundle limit.

Every log file also opens with a line identifying the instance that wrote it — version, platform, whether it runs in a container, the database backend, the deployment mode and the rotation window. It is written again on every rotation, so a rotated file still explains itself.

The same lines are appended to SUBLARR_LOG_FILE (default /config/sublarr.log in Docker). The browser viewer reads from the live tail; the on-disk file is the authoritative source if your retention is longer than the in-memory buffer of 500 lines.