PreviewMonitor docs
The Desktop Plugin

Logs and Diagnostics

Where PreviewMonitor writes its logs, crash dumps and config files on Windows and macOS, the two debug switches, and what to send support.

Everything the desktop plugin knows about a failed stream is in its log. On Windows that is a plain text file you can open in Notepad. On macOS it goes to the unified system log and you read it with Console.app or log show — there is no log file on macOS.

Where everything lives

Windows

WhatPath
Plugin log (Premiere Pro)%LOCALAPPDATA%\PremiereLive\plugin.log
Plugin log (After Effects)%LOCALAPPDATA%\PremiereLive\plugin-ae.log
Previous log generation%LOCALAPPDATA%\PremiereLive\plugin.log.1
Crash dumps%LOCALAPPDATA%\PremiereLive\crashes\
Debug topic logs%LOCALAPPDATA%\PremiereLive\debug_<topic>.log
Encoder transition log%LOCALAPPDATA%\PremiereLive\transitions.csv
Machine identity + Setup toggles%APPDATA%\PremiereLive\install.json
Trusted iPhones%APPDATA%\PremiereLive\trusted.json, trusted-ae.json

Two different folders: logs go under Local AppData, configuration under Roaming.

Explorer showing the PremiereLive folder under Local AppData with plugin.log, the crashes folder, and several debug logs

Paste %LOCALAPPDATA%\PremiereLive into the Explorer address bar to open this folder directly.

macOS

WhatPath
Plugin logNone. Logging goes to os_log — see below
Debug topic logs~/Library/Logs/PremiereLive/debug_<topic>.log
Encoder transition log~/Library/Logs/PremiereLive/transitions.csv
Machine identity + Setup toggles~/Library/Application Support/PremiereLive/install.json
Trusted iPhones~/Library/Application Support/PremiereLive/trusted.json, trusted-ae.json
Crash dumpsNone from the plugin. macOS writes its own to ~/Library/Logs/DiagnosticReports/

~/Library/Logs/PremiereLive/ does exist on macOS, and it does contain debug topic logs — but it never contains a plugin.log. If you are looking for one, you are looking for a file that is never created. Use Console.app or log show instead.

Reading the log on Windows

Each line looks like this:

[2026-08-30 14:22:07.913 com.premierelive.plugin:transmit:INFO] SendControl: kSourceChanged 1920x1080 @ 30 fps

Timestamp, subsystem, the category of the code that emitted it, the level, then the message. The first useful line in any session is the version banner:

[... :main:INFO] PreviewMonitor plugin v1.4.2 starting up

That tells you exactly which build is installed — quote it in any support request.

The file grows to 4 MB, then rolls: the current file is renamed plugin.log.1 (replacing any previous one) and a fresh plugin.log starts. Only one previous generation is kept, so copy the file before reproducing a long session.

The findstr trap

findstr treats square brackets as a character class, so searching for a bracketed prefix without /C: matches almost every line in the file:

findstr "[dx]" "%LOCALAPPDATA%\PremiereLive\plugin.log"     :: wrong — matches any d or x
findstr /C:"[dx]" "%LOCALAPPDATA%\PremiereLive\plugin.log"  :: right — literal match

Every prefix below is bracketed, so always pass /C:. In PowerShell, use -SimpleMatch and remember that %LOCALAPPDATA% is Command Prompt syntax — PowerShell needs $env:LOCALAPPDATA:

Select-String -SimpleMatch "[sample]" "$env:LOCALAPPDATA\PremiereLive\plugin.log"

Reading the log on macOS

The subsystem is com.premierelive.plugin. Every message carries a category naming the part of the plugin that emitted it — transmit, network, encoder, pairing, trusted, bonjour, ctrl, setup_dialog, and others.

In Terminal, for the last ten minutes:

log show --predicate 'subsystem == "com.premierelive.plugin"' --last 10m --info

To watch live while you reproduce a problem:

log stream --predicate 'subsystem == "com.premierelive.plugin"' --info

Add --debug to either command to include debug-level lines. Narrow to one area by adding a category, for example subsystem == "com.premierelive.plugin" AND category == "pairing".

Console.app with the PreviewMonitor subsystem entered in the search field and messages listed

In Console.app, search for com.premierelive.plugin and enable Action → Include Info Messages — without it, most of the plugin's output is hidden.

Prefixes worth grepping

PrefixWhat it coversNeeds
[sample]Gaps in the frame feed from the host, and the tally of frames replayed to a newly connected phoneAlways on
[bj]Bonjour advertisement health on Windows, including the self-heal that re-publishes a lost registrationAlways on
[Sunshine]Confirmation that a GOP Mode change from the phone was applied, with the resulting GOP lengthAlways on
[dx]Encoder and status-panel state changes — why the stream row shows what it showsPL_LOG_DEBUG=1
[alpha]Pixel-format and transparency measurements on the frames Premiere Pro hands overPL_ALPHA_PROBE=1
[VEH]A fatal exception's faulting module and offset, written just before a crash dumpWindows, always on

The two debug switches

Both are environment variables read once, the first time the plugin needs them. Set them before launching Premiere Pro — setting them afterwards does nothing.

PL_LOG_DEBUG=1

Windows only. Lowers the log file's level filter from Info to Debug, which turns on heartbeat ticks, per-frame counters, and the [dx] state trace. Expect the 4 MB rotation to come around much faster.

macOS ignores it — debug messages are always emitted to os_log and filtered by the system instead, so add --debug to your log show command.

PL_ALPHA_PROBE=1

Both platforms. Samples the incoming frame buffer once every two seconds and prints an alpha histogram plus a count of pixels that break the premultiplied- alpha invariant. Support may ask for this when investigating a transparency or matting complaint. It costs well under a millisecond per sample, so it is safe to leave on for a whole session.

Setting one on Windows

Quit Premiere Pro.
Press Start, type environment variables, and open Edit the system environment variables for your account.
Under User variables, click New… and add the name and the value 1.
Launch Premiere Pro. Delete the variable again when you are done.

The Windows New User Variable dialog with PL_LOG_DEBUG entered as the name and 1 as the value

A user variable is enough — the plugin runs inside your own Premiere Pro process.

Setting one on macOS

An environment variable set in Terminal does not reach an app launched from the Dock, and open -a does not carry it either. Launch the executable inside the application bundle directly for that one session, adjusting the year to match your install:

PL_ALPHA_PROBE=1 "/Applications/Adobe Premiere Pro 2026/Adobe Premiere Pro 2026.app/Contents/MacOS/Adobe Premiere Pro 2026"

Quit Premiere Pro first, and leave the Terminal window open while you work — it owns the process.

Debug topic logs

Alongside the main log the plugin keeps a small set of per-topic files, named debug_<topic>.log. The topics are transitions, controller, encoder, telemetry, fps, owd and ui_sync. They are all enabled by default and need no environment variable.

At every startup the previous file is archived with a UTC timestamp in its name — debug_encoder_2026-08-30T14-22-07.913Z.log — and a fresh one is opened. Only the five most recent archives per topic are kept.

To narrow them to one or two topics, set PREMIERELIVE_DEBUG_TOPICS=transitions,encoder before launching. Unset or empty means all topics.

transitions.csv

Every encoder rebuild — a resolution change, a codec swap, an engine change — appends one row to transitions.csv in the same folder as the debug logs. The header is written when the file is first created:

ts,mode,fromW,fromH,toW,toH,cloneMs,firstKeyMs,swapMs,totalMs,framesDropped,error

mode is Seamless or Conservative, totalMs is how long the swap took, and framesDropped is how many frames were lost across it. This is the file to look at if the picture freezes for a moment whenever you change a setting on the phone. It is never truncated, so it accumulates across sessions.

Crash dumps

On Windows the plugin installs a crash handler at load and writes a minidump to %LOCALAPPDATA%\PremiereLive\crashes\ when a fatal exception reaches it. Files are named YYYY-MM-DD_HH-MM-SS_<pid>.dmp and run to a few megabytes. It chains to Adobe's own handler afterwards, so Premiere Pro's crash reporter still fires.

The line immediately before the crash in plugin.log — the one tagged [VEH] — names the faulting module and offset, which is often enough on its own.

macOS gets no dump from the plugin. Use the standard macOS crash report in ~/Library/Logs/DiagnosticReports/.

What to send support

For any problem, attach:

  1. The plugin log.
    • Windows: plugin.log (and plugin-ae.log if the problem is in After Effects). Copy the file rather than the folder — it rolls at 4 MB.
    • macOS: the output of log show --predicate 'subsystem == "com.premierelive.plugin"' --last 30m --info > ~/Desktop/previewmonitor.log
  2. The version line — PreviewMonitor plugin vX.Y.Z starting up, near the top of the log — and the App Store version of the iPhone app.
  3. The Active encoder: line from the Setup window, which names the exact encoder your machine picked.
  4. The Instance ID from the Setup window (Windows) or from install.json (macOS).
  5. Host and OS versions — which Adobe application, which version, and your Windows or macOS version.
  6. For a crash: the newest .dmp from the crashes folder.
  7. For a picture-quality or color question: transitions.csv, plus a run with PL_ALPHA_PROBE=1 if you were asked for one.

Do not send trusted.json. It contains the session tokens that let a device connect to your machine.

Last updated on