Skip to content

Collecting Logs

RadicalMuffinMan edited this page Sep 11, 2026 · 3 revisions

Collecting Logs

Diagnostic logging records what the app does on your TV: the requests it makes to your server, playback activity, and subtitle decisions. It's off by default and records nothing while it's off.

The short version

  1. Open Settings > About > About and scroll to Diagnostics & Logging.
  2. Turn on Diagnostic Logging.
  3. Make the problem happen again.
  4. Open View Logs and press Send Report.
  5. Download the report from your Jellyfin dashboard under Logs and attach it to your issue.

The rest of this page explains each step in detail.

If the problem is one of the usual ones (can't connect, no sound, transcoding, a vanished app on LG), Common Problems may save you the trip.

Turn on logging

  1. Open Settings.
  2. Open About, then About.
  3. Scroll to the Diagnostics & Logging section.

There are two switches there and they do different things:

  • Diagnostic Logging records a trace on the TV that you can read and send yourself. This is the one you want for reporting a problem.
  • Server Logging pushes errors to your Jellyfin server as they happen, without you sending anything. You can leave it off unless someone asks for it.

Nothing is recorded retroactively, so turn Diagnostic Logging on first and then reproduce the problem.

Entries are kept in memory only, up to 500 of them. Past that the oldest are dropped, and restarting the app clears the lot.

View the log

Still under Diagnostics & Logging, open View Logs. Entries are listed newest first. You can:

  • Filter by category: All, Network, Playback, Application, Auth, or Navigation.
  • Use Show More to load the next 50 entries.
  • Use Clear to wipe the log.

Each row shows the time, the category, and the message. Subtitle and audio track decisions are recorded under Playback, with the message starting in Subtitle: or Audio:.

Send a report

From the View Logs screen, press Send Report. The app uploads the whole buffer to your Jellyfin server as a single text document and you will see "Report sent to the server".

The document is named after the platform:

  • moonfin-tizen-log on Samsung
  • moonfin-webos-log on LG

Sending doesn't clear the buffer, so pressing it twice uploads a second document that still contains everything from the first. If you send more than once, take the newest document by timestamp.

If you get "The server is not accepting client logs. Enable them in the server dashboard.", your server is refusing the upload. Turn client logging on in the Jellyfin dashboard and try again.

Retrieving the report from the server

  1. Open the Jellyfin Web UI.
  2. Go to the Dashboard and open Logs.
  3. Find the moonfin-tizen-log or moonfin-webos-log document in the list and download it.

Attach the downloaded file to your issue.

Reading the report

The report is plain text. It opens with a header describing the device, then one line per entry:

=== Moonfin for Tizen diagnostic report ===
Generated: 2026-08-31T18:42:10.988Z
App Version: 2.8.2
TV Version: 8.0
Model: UN32H5000FFXZA
User Agent: Mozilla/5.0 (SMART-TV; LINUX; Tizen 8.0) ...
Entries: 137
============================================================
2026-08-31T18:42:10.123Z Debug [Network] -> GET https://jellyfin.example/Items/487a?api_key=***
2026-08-31T18:42:10.165Z Debug [Network] <- 200 GET https://jellyfin.example/Items/487a?api_key=*** (42ms)
2026-08-31T18:42:11.004Z Information [Playback] Subtitle: initial track chosen
    {"stream":"eng SUBRIP","index":3}

Each line is the timestamp, the level, the category in brackets, and the message. Network entries read as follows:

  • -> a request going out.
  • <- the response, with its status code and how long it took.
  • xx a request that failed, with the reason.

An entry that carries extra data has it on an indented line underneath as JSON.

What is in the report

Worth knowing before you post one in public:

  • The full URLs the app requested, which include your server address.
  • Your TV model, OS version, app version, and browser user agent.

Credentials in query strings are masked. Anything named apikey, api_key, or token is replaced with *** before it reaches the log, so an access token can't leak this way.

Video and image traffic isn't recorded. The log only sees requests the app makes itself, and the platform player and image loading don't go through it.

If you would rather not post your server address publicly, send the file to a maintainer directly instead of attaching it to a public issue.

Advanced: debug overlay

The coloured buttons on the remote drive a live console overlay, in every build:

  • RED toggles the overlay, which covers the right half of the screen and shows the last 200 console lines.
  • GREEN clears it.
  • YELLOW saves the current buffer to browser storage under moonfin_debug_log.

This is a quick way to watch errors as they happen while you reproduce something. It's separate from the log above and isn't needed for the normal "file an issue" path.

Filing an issue

When you open an issue on GitHub, include:

  • Your TV model and OS version, from Settings, About, About, under Device.
  • The App Version, from the APP INFO section on that same screen.
  • The steps that reproduce the problem.
  • The report you downloaded from the server, or a photo of the View Logs screen if you can't reach the dashboard.

The report already carries the model, OS version, and app version in its header, so if you attach it you don't need to type them out again.

Clone this wiki locally