-
-
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.
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 |
| 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.LogType value. The special level None disables logging. If logging appears to be off, confirm the log level is not set 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 Log action on Settings → System, 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