Skip to content

Logs Diagnostics

Taiizor edited this page Jun 19, 2026 · 3 revisions

Logs & Diagnostics

Sucrose writes a date-stamped log file per process under %AppData%\Sucrose\Log\. This page documents the log location, the per-line format, the compressed log-bundle name, and how to generate and collect logs for a bug report. Logs are the primary diagnostic artifact when a wallpaper won't start, an engine crashes, or the Store appears offline.

Contents

Where logs live

All logs are stored in:

%AppData%\Sucrose\Log\

Logging is handled by Sucrose.Manager.LogManager, which writes through the same mutex-guarded Writer.WriteAppend used for settings I/O, so logging is safe across the many Sucrose processes. See Data-Locations for where this sits in the overall data tree.

File naming

Each process writes its own file, named <Process>-yy.MM.dd.log (the date stamp yy.MM.dd comes from Sucrose.Memory.Manage.Valuable.Log.FileNameDate, so logs rotate per day). The processes that write logs are:

Undo, Portal, Update, Launcher, Property, Watchdog, Commandog, Reportdog, Backgroundog, AuroraLive, NebulaLive, VexanaLive, XavierLive, WebViewLive, CefSharpLive, MpvPlayerLive, VlcPlayerLive.

Example file names:

Portal-26.06.05.log
Backgroundog-26.06.05.log
MpvPlayerLive-26.06.05.log

The CefSharp engine additionally emits a native log alongside the managed one, named CefSharpNative-<date>-<guid>.log. See Engine-CefSharp.

Use this table to decide which file to open:

Symptom Most relevant log
Portal UI / settings problems Portal-*.log
Wallpaper won't start / wrong engine Launcher-*.log, Commandog-*.log, and the matching <Engine>Live-*.log
Audio not reacting / system data missing Backgroundog-*.log
MPV (GIF/Video) issues MpvPlayerLive-*.log
VLC (GIF/Video) issues VlcPlayerLive-*.log
Browser wallpaper issues WebViewLive-*.log / CefSharpLive-*.log (+ CefSharpNative-*.log)
Update failures Update-*.log
Crash dialog appeared Watchdog-*.log, Reportdog-*.log (and the crash report — see below)
Uninstall issues Undo-*.log

Per-line format

Each log line follows this template:

[HH:mm:ss] ~ [SucroseWatchdog Thread-<randomThreadId>/<level>] ~ [<message>]

So a line is timestamped (HH:mm:ss), tagged with a thread id and a level, and ends with the message text in brackets.

Log levels

The level is a Skylark.Enum.LevelLogType value (e.g. Info, Warning, Error). Note that logging can be disabled entirely via the separate Skylark.Enum.LogType value None on the LogManager; in the shipping app this master type is always All (the constructor defaults to LogType.All and no instance overrides it), so there is no user-facing setting to set it to None.

The compressed log bundle

When you collect logs for sharing, Sucrose can produce a single compressed bundle. The bundle name template (Valuable.Log.FileNameCompress) is:

sucrose_log_yyyyMMdd_HHmmss.zip

This is the file you attach to a bug report.

Crash reports vs logs

Logs and crash reports are different artifacts:

  • Logs (%AppData%\Sucrose\Log\) are an ongoing, per-process, per-day record.
  • Crash reports (%AppData%\Sucrose\Cache\Report\<Id>.json) are written by the Watchdog when a process throws an unhandled exception; the Reportdog can upload them (subject to your consent settings). See Crash-Reporting and Privacy-Telemetry.

When filing a bug, include both the relevant log file(s) and — if a crash dialog appeared — the matching Report\<Id>.json.

Generating logs for a bug report

  1. Reproduce the problem so the relevant process writes fresh log lines.
  2. Collect the logs via the Portal: Settings → System offers create/delete log actions and the folder-clearing controls; use the log action to produce the compressed sucrose_log_*.zip bundle. See Settings-System.
  3. Alternatively, open %AppData%\Sucrose\Log\ directly and grab today's <Process>-yy.MM.dd.log files for the affected component(s) using the table above.
  4. If a crash dialog appeared, also include the latest %AppData%\Sucrose\Cache\Report\<Id>.json.
  5. Attach everything to a GitHub issue (see Getting-Help and Troubleshooting-Common).

📷 Screenshot needed: Portal → Settings → System showing the log create/delete action used to produce the compressed log bundle.

Clearing logs

To clear logs, use the Clear action under the Log Files section on Settings → System (alongside the Create button that exports a log archive), which removes %AppData%\Sucrose\Log\, or delete the folder's contents manually while Sucrose is closed. Clearing logs never affects your settings; see Backup-Restore-Reset for the full list of folder-clearing actions.

See also

Home

Getting Started

Wallpaper Types

Using Sucrose

Settings Reference

Creating Wallpapers

Engine Reference

Automation & Command Line

Architecture & Internals

Data, Files & Diagnostics

Building & Contributing

Help & Support

Clone this wiki locally