View, filter, and export connection and event logs from a UniFi Network Application controller, with filters the UNA web UI doesn't offer. For network admins who need quick, focused log access across a site.
Built by JDE-Projects, home of the Simple X Tools suite.
If you enjoyed this project and would like to buy me a coffee, check out my Ko-fi.
- Filter by site, time range, log type (General or Audit), category, and event.
- Sortable results table; export everything to CSV (timezone-stamped column).
- Read-only: makes no changes to the controller, sites, or device state.
- Optional debug log, off by default, with credentials redacted.
- Secrets are never saved (memory only, wiped on disconnect).
- Checks GitHub Releases for a newer version at startup and on demand. Startup failures stay quiet; an on-demand failure explains what went wrong.
- Backend: Python standard library (urllib) against the controller's v2
system-logAPI. - Window: pywebview on the Qt backend (PySide6), UI in
simple_una_log_viewer-UI.html.
Install through WinGet:
winget install --exact --id JDE-Projects.SimpleUNALogViewer
Or pick one of the downloads from the Releases page:
- Installer (recommended): download
SimpleUNALogViewer-vX.Y.Z-setup.exeand run it. Installs the app, adds a Start menu shortcut, and can be removed later from Add or Remove Programs. Installs just for you by default (no admin); you can choose all users during setup. - Portable .zip: download
SimpleUNALogViewer-vX.Y.Z.zip, extract it, and runSimple UNA Log Viewer.exefrom inside the extracted folder. No install - good for a locked-down PC or a USB stick. Keep the folder together. Windows only, no Python or setup required. Unsigned, so SmartScreen may warn the first time: More info > Run anyway.
Simple UNA Log Viewer doesn't update itself. The status bar has a Check for updates button that tells you when a newer release is out; when it does, get the new version from the Releases page the same way you first installed it.
- WinGet: run
winget upgrade --exact --id JDE-Projects.SimpleUNALogViewer. - Installer: download the new
SimpleUNALogViewer-vX.Y.Z-setup.exeand run it. It installs over your current copy. - Portable .zip: download and extract the new
SimpleUNALogViewer-vX.Y.Z.zip. If you want to keep your light/dark theme choice and window size and position, copysimple_una_log_viewer.preffrom the old folder into the new one (otherwise those just reset to default).
Your controller password is never stored, so there's nothing else to carry over.
This release was built on GitHub from this public source, not on a personal machine, and is signed with a build-provenance attestation. To confirm your download is genuine, install the GitHub CLI and run:
gh attestation verify SimpleUNALogViewer-vX.Y.Z.zip \
--repo JDE-Projects/Simple-UNA-Log-Viewer \
--signer-repo JDE-Projects/Build-Tools
A Verification succeeded! line means the file was built by the published
pipeline from this repo. You can also check the file against the published
.sha256.
- Python 3 on PATH.
pip install -r requirements.txt(pinnedpywebview,PySide6,qtpy,pyinstaller, andtruststore; keep PyQt6 uninstalled so the LGPL binding is the one bundled).- Keep
simple_una_log_viewer.py,simple_una_log_viewer-UI.html, thefonts/folder, the.ico, and.pngtogether. - Run from source:
python simple_una_log_viewer.py - Build the .exe:
Build_Simple_UNA_Log_Viewer.bat->dist\Simple UNA Log Viewer\Simple UNA Log Viewer.exe
- Enter the controller URL, username, and password (a local admin account, not SSO), then Connect.
- Pick a site, a time range, and the log type.
- Optionally check categories and/or events to narrow results. Leave both unchecked for a global search across the time range.
- Run Search. Click any column header to sort.
- Export CSV to save the current results.
- The password is never written to disk; it lives in memory only and is cleared on disconnect.
- The optional debug log is off by default. When on, it writes
Debug_Log_MMDDYYYY_HHMMSS.txtnext to the app with credentials redacted. - Network use. Other than the job you ask of it, this app makes one automatic network call: a check to GitHub for a newer release (at startup and when you press Check for updates), which sends only a version request. It collects and sends no personal data, usage data, or analytics.
This project was built with AI assistance. The design decisions, feature direction, and real-world testing were directed by me. The code was written and revised with an AI assistant against that direction. Treat it like any community tool: review and test it before relying on it.
Released under the PolyForm Noncommercial License 1.0.0 (see LICENSE). Personal and noncommercial use, modification, and noncommercial redistribution are permitted; commercial use is not. Keep the copyright notice; no warranty. This tool bundles third-party code; see THIRD-PARTY-LICENSES.txt.
For commercial licensing, open a GitHub issue with the title "Commercial License Inquiry".
