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.
Layout
Section titled “Layout”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.
| Control | Effect |
|---|---|
| Level dropdown | Filter to a minimum severity. WARNING hides INFO and DEBUG; ERROR shows only errors. ALL shows everything. |
| Search box | Substring match (case-insensitive) on the entire log line. |
| Auto-scroll | When enabled (default), the viewport follows new lines. Toggling off keeps the view still so you can scroll up and read. |
| Download | Downloads the anonymised support bundle — see Download for support. |
Log levels
Section titled “Log levels”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.
| Level | When you’d raise it to |
|---|---|
DEBUG | Reproducing a bug — verbose request/response and worker traces. |
INFO | Default. Lifecycle events, scheduler ticks, downloads. |
WARNING | Production where you only care about deviations from the happy path. |
ERROR | Quiet logs — only failures land. |
Categories
Section titled “Categories”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.
| Category | Covers |
|---|---|
| Scanner | Wanted-list and standalone scanner ticks and decisions. |
| Translation | Translation pipeline. |
| Providers | Subtitle provider searches and downloads. |
| Background Jobs | Scheduler triggers, workers, job runs. |
| Auth | Login 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).
Download for support
Section titled “Download for support”When opening an issue, the most useful artifact is the support bundle. The recipe:
- Set the log level to
DEBUGin Settings → System and reproduce the issue once. - Click Download on the Logs page (or Export Support Bundle under Settings → System → Diagnostics).
- 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.
Downloading logs over the API
Section titled “Downloading logs over the API”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,ffprobeandmkvmerge; - 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.
File on disk
Section titled “File on disk”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.