MachineLogMonitor
MachineLogMonitor is a PySide6 desktop application for observing live text logs from CAN, RS232, and CAN trace files. It only reads: no CAN frame and no serial byte is sent from application code — the source layer contains no send or write call, enforced by a test. On CAN, listen-only mode is requested where the backend supports it.
Features
- Monitor exactly one selected source: a CAN bus, an RS232 serial port, or a CAN trace file
- Receive-only by design — no send or write call exists in the source layer
- Multiple filtered monitor views over one shared ring buffer; pause and clear per view without losing incoming data
- Configurable substring rules that color lines as DEBUG, INFO, WARN, and ERROR
- Optional logging to disk: raw stream and per-monitor files, written while a source is connected
- Trace playback at 0.5×, 1×, 2×, 10×, or instant speed
- RS232 sources accept pyserial URLs (for example
socket://host:port) in addition to COM port names - JSON configuration with safe defaults: missing keys are restored, a malformed file is never overwritten until an explicit save
- Optional dependency vulnerability scan on the About page via
pip-audit
Installation
Requires Python 3.10 or newer. Developed and tested primarily on Windows.
pip install machine-log-monitor
As a standalone application, installing with pipx keeps it in its own environment and puts the machine-log-monitor command on the PATH:
pipx install machine-log-monitor
Connecting to a source additionally needs a CAN backend, a serial device, or a supported CAN trace file.
Usage
Run machine-log-monitor to launch the application:
machine-log-monitor
machine-log-monitor --config .\monitor.json
The application opens on the Monitors page. Configure and select a source under Data source, then choose Connect. Add, edit, or remove filtered views on Log monitors; Pause and Clear affect only the selected view, not the incoming buffer. Enable Log file to also write the received stream to disk.
On General, set the substrings used for DEBUG, INFO, WARN, and ERROR coloring; empty substrings disable that rule. Save settings with File → Save or Save as… as a JSON file that can be passed back via --config.
The optional audit extra (pip install machine-log-monitor[audit], or pipx install "machine-log-monitor[audit]") enables the background pip-audit scan on the About page.
License
MIT — see the LICENSE file shipped with the package. Third-party components (PySide6, python-can, pyserial, bundled fonts) keep their own licenses; see THIRD_PARTY_LICENSES.md in the source distribution.
MachineLogMonitor is a diagnostic viewer and not intended for safety-critical use.
This project was created with the assistance of artificial intelligence.
Release files for machine-log-monitor 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| machine_log_monitor-0.1.1.tar.gz | 734.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| machine_log_monitor-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.5 MB
Release files / machine_log_monitor-0.1.1.tar.gz
| Download URL | machine_log_monitor-0.1.1.tar.gz |
|---|---|
| Size | 734.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
efdb4496f0e4e5f6ab3d6cf855768c44d02255f83b18721f6e541be5ea30fb2f
|
|
BLAKE2b-256 checksum How to use checksums |
10d634641164b90f390714825046de89cde6719beb881b711258d925d41278a9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.6
|
Release files / machine_log_monitor-0.1.1-py3-none-any.whl
| Download URL | machine_log_monitor-0.1.1-py3-none-any.whl |
|---|---|
| Size | 739.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
dd9da928ca2fd68dca836a68349ad4c3e15ac7a113de1e8d28d735632fdcdda1
|
|
BLAKE2b-256 checksum How to use checksums |
ee108ee84196001f6d1c1aa03c81c92d6d03412db54cf2cd818b9e276598cc26
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.6
|