Skip to main content

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, a CAN trace file, or a local pipe (Windows named pipe, Linux FIFO) that either the sending program or the monitor creates, so a command-line redirect works too
  • Receive-only by design — no send or write call exists in the source layer
  • Multiple filtered monitor views (substring or regular expression) 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 arrival timestamp in front of every line (HH:MM:SS.mmm or with the date), in the monitors and in the per-monitor log files, switchable at runtime
  • 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 port field offers the serial ports detected on the machine and also accepts pyserial URLs (for example socket://host:port)
  • A configured serial port that is not present is flagged on the Monitors page and in the menu bar; connecting stays possible for virtual ports
  • Sidebar collapses to a narrow icon strip with the arrow button at its top or Ctrl+B
  • JSON configuration with safe defaults: missing keys are restored, a malformed file is never overwritten until an explicit save
  • Reopens the last used configuration on start and asks before discarding unsaved changes on exit
  • Optional dependency vulnerability scan on the About page via pip-audit

Installation

Requires Python 3.10 or newer. Developed and tested primarily on Windows. On Linux, install Qt's system libraries first: the user guide's Getting started page (section Install on Linux; the guide ships in the package under machinelogmonitor/resources/guide/ and opens from the About page) lists the Debian/Ubuntu packages, the dialout group for serial ports and the SocketCAN setup.

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.

The source distribution also carries the test suite and, under manual_test/, the log generator that feeds the monitor simulated lines without hardware. That generator sends; it is test tooling, not part of the application, and installing the package does not install it.

Usage

Run machine-log-monitor, or its short alias mlogmon, to launch the application:

machine-log-monitor
machine-log-monitor --config .\monitor.json
mlogmon --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. The Timestamp chips there put the arrival time of every line in front of it, in the monitors and in the per-monitor log files; the raw log file stays as received. The Sources card there hides source types you do not use from the Data source page and the Data Source menu. 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, also shipped with the package. The About page opens both files, this README and the CLI reference in a viewer inside the application.

MachineLogMonitor is a diagnostic viewer and not intended for safety-critical use.

This project was created with the assistance of artificial intelligence.

Metadata

Release files for machine-log-monitor 0.4.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for machine-log-monitor 0.4.0
File Size Uploaded Provenance Actions
machine_log_monitor-0.4.0.tar.gz 861.7 kB Without provenance Details for machine_log_monitor-0.4.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for machine-log-monitor 0.4.0
File Interpreter ABI Platform Actions
machine_log_monitor-0.4.0-py3-none-any.whl Python 3 none any Details for machine_log_monitor-0.4.0-py3-none-any.whl

Total release size: 1.7 MB

Release files / machine_log_monitor-0.4.0.tar.gz

Download URL machine_log_monitor-0.4.0.tar.gz
Size 861.7 kB
Tags Source
SHA-256 checksum
How to use checksums
0534ede8921c8cf12e7e32cdd2c5b0e286939928a06e2146eeb0ba57f05deb3d
BLAKE2b-256 checksum
How to use checksums
bae2ad42ec048c5239f9ea48d16d4b30cbeec870d42cdba4c9aaddefd1604173
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.15.1

Release files / machine_log_monitor-0.4.0-py3-none-any.whl

Download URL machine_log_monitor-0.4.0-py3-none-any.whl
Size 807.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b97e5061bbe93998d3279883108e1946b48665ecb3d94c6412b6a4a1c0733846
BLAKE2b-256 checksum
How to use checksums
9d8345f80a2ba0e3625c72eb9522a6e5cb255a448ad0380fdd1aae86123cc974
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.15.1

Security for machine-log-monitor 0.4.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page