Log File Reference¶
The launcher writes a detailed diagnostic log every time it runs. This is the single most useful artifact when investigating problems.
Location¶
C:\Users\<username>\AppData\Local\Leahy\Pulse Dashboard 5\Pulse Logs\Pulse Dashboard Client.log
If the launcher can't write to that location for some reason (permissions, missing path), it falls back to the user's TEMP folder.
To open the log quickly without navigating, run the launcher with the /showlog flag.
Retention¶
The log keeps the last 10 sessions. When the 11th session runs, the oldest session is dropped. There's also a 5MB hard backstop — if a single session ever produces more than 5MB of log output (vanishingly unlikely), the file is discarded entirely on the next launch.
The log is newest-first: the most recent session appears at the top of the file. Within a session, lines are in chronological order.
Reading a log¶
Each session is delimited by a header line:
=== Session 20260501-180350 started at 2026-05-01 18:03:50 ===
Below that, every line has this format:
HH:MM:SS.mmm [LEVEL] message
Three levels are used: INFO, WARN, ERROR. Errors are the ones to focus on.
Anatomy of a typical session¶
=== Session 20260501-180350 started at 2026-05-01 18:03:50 ===
18:03:50.319 [INFO ] Launcher running from: \\server\share\PulseDashboard
18:03:50.320 [INFO ] Running as: CONTOSO\jdoe (elevated: False)
18:03:50.323 [INFO ] Sync destination (client): C:\Users\jdoe\AppData\Local\Leahy\Pulse Dashboard 5\
18:03:50.330 [INFO ] Sync source (server): \\server\share\PulseDashboard\ [resolved from: launcher startup folder]
18:03:50.389 [INFO ] Update started.
18:03:50.404 [INFO ] Scan phase: 154 files found in 11 ms (0.1 ms/file).
18:03:50.513 [INFO ] Copy exemption: \\server\share\PulseDashboard\Pulse Dashboard Client.exe (matches running launcher (Pulse Dashboard Client.exe))
18:03:50.564 [INFO ] Compare/copy phase: total 153 ms (compare=28 ms, copy=0 ms).
18:03:50.591 [INFO ] Cleanup exemption: contents of 'Settings' folder preserved.
18:03:50.591 [INFO ] Cleanup exemption: contents of 'Pulse Logs' folder preserved.
18:03:50.607 [INFO ] Cleanup phase: 39 ms.
18:03:50.607 [INFO ] Update finished in 214 ms. Scanned=154 Copied=0 Skipped=154 Deleted=0 CopyFailures=0 DeleteFailures=0
18:03:50.953 [INFO ] Launching: C:\Users\jdoe\...\Pulse Dashboard.exe remote
18:03:51.357 [INFO ] Launched successfully. Total launcher duration: 1056 ms.
This is a healthy, no-changes launch. Let's walk through what each section means.
Session header¶
=== Session 20260501-180350 started at 2026-05-01 18:03:50 ===
Marks the beginning of a launcher invocation. The session ID is just a timestamp.
Flag declarations (only present when flags are used)¶
If any flags were active, they appear at the top of the session before the contextual info:
[INFO ] Clean flag set: client directory will be wiped before sync.
[INFO ] Verify flag set: strict (SHA1 hash) verification will be used for every copied file.
If no flags were used, these lines are simply absent.
Context block¶
[INFO ] Launcher running from: \\server\share\PulseDashboard
[INFO ] Running as: CONTOSO\jdoe (elevated: False)
[INFO ] Sync destination (client): C:\Users\jdoe\AppData\Local\Leahy\Pulse Dashboard 5\
[INFO ] Sync source (server): \\server\share\PulseDashboard\ [resolved from: launcher startup folder]
This tells you everything you need to know about the run's environment:
| Line | What it means |
|---|---|
| Launcher running from | The folder the launcher .exe physically lives in. |
| Running as | The Windows user identity, plus whether the process was elevated (Run as administrator). |
| Sync destination | Where the local copy of Pulse Dashboard is being kept. |
| Sync source | Where the launcher is pulling files from, plus how that path was determined (launcher startup folder, ServerPath.txt, or user-selected via browse dialog). |
Phase timing¶
[INFO ] Scan phase: 154 files found in 11 ms (0.1 ms/file).
[INFO ] Compare/copy phase: total 153 ms (compare=28 ms, copy=0 ms).
[INFO ] Cleanup phase: 39 ms.
Three timed phases:
- Scan phase — enumerating files on the server. On slow networks, this is often the dominant cost. The ms/file figure tells you whether the server is responsive (under 1ms per file is healthy).
- Compare/copy phase — checking each file and copying changed ones. Reports compare time and copy time separately so you can tell whether comparison or actual transfer is the bottleneck.
- Cleanup phase — deleting files and folders that no longer exist on the server.
If any phase is unusually long for your environment, that's the first place to investigate.
Exemptions¶
The launcher logs every exemption explicitly so it's clear what's being preserved and why:
[INFO ] Copy exemption: \\server\share\.../Pulse Dashboard Client.exe (matches running launcher)
[INFO ] Cleanup exemption: contents of 'Settings' folder preserved.
[INFO ] Cleanup exemption: contents of 'Pulse Logs' folder preserved.
Common exemptions: - Running launcher — the launcher never copies itself into the local folder, and never deletes the file it's currently running from. - Settings folder — the user's settings folder is never touched during copy or cleanup. - Pulse Logs folder — where the log file lives; preserved. - Shortcut files (.lnk, .url) — never copied from server to client.
Final summary¶
[INFO ] Update finished in 214 ms. Scanned=154 Copied=0 Skipped=154 Deleted=0 CopyFailures=0 DeleteFailures=0
The bottom line. Six counters tell you what happened:
| Counter | Meaning |
|---|---|
Scanned |
Total files found on the server. |
Copied |
Files that were transferred (length differed, source newer, or first time). |
Skipped |
Files that were already up to date. Big number = healthy fast launch. |
Deleted |
Orphan files/folders removed during cleanup. |
CopyFailures |
Files that couldn't be copied. Non-zero blocks the application launch. |
DeleteFailures |
Files/folders that couldn't be deleted. Non-zero is logged but does not block launch. |
Launch and total duration¶
[INFO ] Launching: C:\Users\jdoe\...\Pulse Dashboard.exe remote
[INFO ] Launched successfully. Total launcher duration: 1056 ms.
The Launching: line shows the full command including any arguments forwarded to Pulse Dashboard. The duration is from launcher startup to the moment Pulse Dashboard's process is created — useful for support to gauge whether a launch is "normal slow" or "unusual slow."
Patterns to look for in problem cases¶
Copy failures¶
[WARN ] Copy attempt 1 failed for C:\...\PulseLib.dll: The process cannot access the file because it is being used by another process.
[WARN ] Copy attempt 2 failed for C:\...\PulseLib.dll: The process cannot access the file because it is being used by another process.
[WARN ] Copy attempt 3 failed for C:\...\PulseLib.dll: The process cannot access the file because it is being used by another process.
[ERROR] Giving up on C:\...\PulseLib.dll after 3 attempts | IOException: ...
The launcher retries each copy up to 3 times. If all retries fail, the file is recorded as a CopyFailure and the launch is blocked. Almost always caused by the application being open already.
Delete failures¶
[ERROR] Could not delete C:\...\OldFile.dll: Access to the path is denied.
A file or folder couldn't be removed during cleanup. Doesn't block launch but worth investigating if it persists across sessions.
Slow scan phase¶
[INFO ] Scan phase: 154 files found in 4200 ms (27.3 ms/file).
ms/file over 5ms suggests network latency on the server share. Over 20ms suggests something seriously wrong (saturated link, SMB issues, antivirus inspecting every metadata read).
Strict verification mismatch¶
[ERROR] Giving up on C:\...\file.dll after 3 attempts | IOException: Hash mismatch after copy (strict verification): source=A1B2C3... dest=D4E5F6...
Only appears in /verify mode. Indicates that bytes were corrupted somewhere between source and destination — disk, network, or memory issue. Take it seriously; it's a real signal.