-
-
Notifications
You must be signed in to change notification settings - Fork 60
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.
- Where logs live
- File naming
- Per-line format
- Log levels
- The compressed log bundle
- Crash reports vs logs
- Generating logs for a bug report
- Clearing logs
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.
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 |
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.
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.
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.
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.
- Reproduce the problem so the relevant process writes fresh log lines.
-
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_*.zipbundle. See Settings-System. - Alternatively, open
%AppData%\Sucrose\Log\directly and grab today's<Process>-yy.MM.dd.logfiles for the affected component(s) using the table above. - If a crash dialog appeared, also include the latest
%AppData%\Sucrose\Cache\Report\<Id>.json. - 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.
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.
Getting Started
- Installation
- System Requirements
- Quick Start
- Portal Interface Tour
- Updating Sucrose
- Uninstalling Sucrose
Wallpaper Types
Using Sucrose
- Managing Library
- Using Store
- Customizing Wallpaper
- Multi-Monitor
- Wallpaper Cycling
- Choosing Engines
- Performance Rules
- Theme, Tray & Startup
- Discord Rich Presence
Settings Reference
- Settings Overview
- Settings: General
- Settings: Personal
- Settings: Performance
- Settings: Wallpaper
- Settings: System
- Settings: Other
- Settings: All Keys
Creating Wallpapers
- Create Overview
- Create: Step By Step
- Create: Package Format
- Create: Customization Controls
- Create: JS Bridge
- Create: Audio API
- Create: System API
- Create: Property Listener & Filters
- Create: Web Architecture
- Create: Compatibility
- Create: Example Wallpapers
- Create: Sharing & Publishing
Engine Reference
- Engines Overview
- Engine: MpvPlayer
- Engine: VlcPlayer
- Engine: WebView
- Engine: CefSharp
- Engine: Nebula
- Engine: Vexana
- Engine: Xavier
- Engine: Aurora
- Engine Comparison
Automation & Command Line
Architecture & Internals
- Architecture Overview
- Lifecycle
- Commandog Dispatcher
- Single-Instance Mutexes
- IPC
- Backgroundog Service
- Crash Reporting
- Update Internals
- Property Service
- Undo Internals
Data, Files & Diagnostics
Building & Contributing
- Building From Source
- Repository Layout
- Shared Item Projects
- Code Conventions
- Preprocessor Symbols
- Publish Pipeline
- Bundle Installer Internals
- Extending Sucrose
- Contributing
- Translating with Localizer
- Localization Coverage
- Security Policy
- Privacy & Telemetry
Help & Support