logcatx
Local web dashboard for offline embedded dual-core log analysis. Feed it one log file, get an interactive browser dashboard. Deterministic analysis only — no LLM, no external log-mining dependency, no database, single-process, in-memory session.
Install & run
pip install logcatx
logcatx path/to/logfile.log # parses, serves, opens browser
logcatx file.log --port 9000 # explicit port
logcatx file.log --no-browser # headless start
The line format is fixed for v1:
[MM/DD HH:MM:SS] [tid] [LEVEL] [core] [module] message. Lines that do not
match are kept and shown as unparsed — never dropped.
Views
- Overview — file info, level pie, top modules, top error templates.
- Templates — searchable/sortable mined-template table; click a row to drill into its raw lines.
- Timeline — bucketed stacked bars by level (or by top error templates), zoomable; drag-brush a range to jump to Raw Logs in that window; burst list marks templates whose count jumps beyond 5σ (leave-one-out).
- Raw Logs — filter by level/core/module/keyword/template/time range, paged; click any line to expand ±5 lines of context (unparsed neighbors included).
A demo log ships at src/logcatx/static/synth-demo.log (16k synthetic lines
with an injected error storm).
Manual verification checklist
logcatx src/logcatx/static/synth-demo.log— Overview numbers match (16601 total, 600 ERROR).- Templates: search
stat wrongfinds the storm template (300 hits); row click filters Raw Logs to it. - Timeline: ERROR spike at 09:20 visible; brush it → Raw Logs scoped to that minute.
- Raw Logs: scroll 16k lines stays smooth (200/page paging); click a line → context block opens.
- Port fallback: start a second instance with the same
--port; it binds port+1 automatically instead of failing.
Development
pip install -e '.[dev]'
pytest -q # unit + e2e suite
ruff check src tests main.py # lint
python tools/gen_large.py 1000000 /tmp/big.log # perf fixture
Performance: 1,000,000 synthetic lines parse+mine in ~29s (single core).
License
Apache-2.0 — see LICENSE.
Metadata
Release files for logcatx 0.0.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 | Provenance | |
|---|---|---|---|---|
| logcatx-0.0.1.tar.gz | 476.5 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| logcatx-0.0.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 959.6 kB
Release files / logcatx-0.0.1.tar.gz
| Download URL | logcatx-0.0.1.tar.gz |
|---|---|
| Size | 476.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2eb35d86f3d6edab0023bc039018fe1ed0a52478cc10db92f05ef89f038d5213
|
|
BLAKE2b-256 checksum How to use checksums |
7872b0c3aa8de7bbf3d73c41d9127462f341afe2ad9edcc277c40b4759eff5a5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.10.12
|
Release files / logcatx-0.0.1-py3-none-any.whl
| Download URL | logcatx-0.0.1-py3-none-any.whl |
|---|---|
| Size | 483.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
446a687619f9e46998675c0f065bce5a1e8603bf3c5c797ec5483b5437fb7660
|
|
BLAKE2b-256 checksum How to use checksums |
8e250d965061d09ef6697de820351cb7d503c63065e765fa51ddd11e11804f78
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.10.12
|
Security for logcatx 0.0.1
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.