logsite
Your logs say something broke. logsite tells you which line of your code, and writes a test that proves it.
It reads the logs you already have (a file, Loki, OpenSearch, CloudWatch, Sentry or OpenTelemetry), groups thousands of stack traces into a few causes, and points each one at your line of code. No SDK, nothing to add to your services. Works with Python, Java, Go, TypeScript and JavaScript.
pip install logsite
Try it
The repo has a small demo shop with a planted bug and its production log.
pip install logsite pytest
git clone https://github.com/rajpaynaik/logsite && cd logsite/examples/bookstore
1. What's failing?
$ logsite errors --from ../../bench/repro/scenarios/supplier-timeout/incident.log
28 errors in incident.log · 2 group(s)
# TREND COUNT ERROR RAISED AT LOGGED AT
1 25 TimeoutError: timed out supplier.py:31 api.py:36
2 3 ConnectionRefusedError: cache unavailable cache.py:15 api.py:23
2. Write a test that reproduces it.
$ logsite repro --from ../../bench/repro/scenarios/supplier-timeout/incident.log --write-test
wrote tests/test_repro_346fa937.py
3. Check it fails the way production did.
$ logsite agent --expect 346fa937 -- python -m pytest tests/test_repro_346fa937.py
✓ 346fa937 reproduced: TimeoutError through bookstore/supplier.py:31, as in production
Fix supplier.py until the test passes.
Use it on your service
cd your-service
logsite errors --from app.log # errors grouped by cause
logsite lint # logging mistakes in your code
To read from your log store, add a logsite.toml:
[backend]
type = "loki" # or "opensearch", "cloudwatch", "sentry", "file"
url = "http://localhost:3100"
selector = '{service_name="checkout"}'
More
| Command | What it does |
|---|---|
logsite app |
Set everything up and browse errors in your browser, no terminal needed |
logsite watch |
Check production every few minutes and post new errors, regressions and spikes to Slack |
logsite db backfill --since 30d |
Store errors in your own database (SQLite, Postgres, MySQL, SQL Server, ClickHouse) for instant date-range queries |
logsite investigate |
Find the deploy and commit behind an incident |
logsite grafana --store postgres |
A Grafana dashboard on your stored errors |
Also: a GitHub Action, a VS Code extension, and an MCP server for AI assistants.
Docs
Commands · Configuration · logsite app · Watch production · Reproduce an error · Security · Changelog
Questions and ideas: Discussions. Contributions welcome, see CONTRIBUTING.md.
License
Apache 2.0
Metadata
Release files for logsite 0.5.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 | |
|---|---|---|---|---|
| logsite-0.5.1.tar.gz | 1.4 MB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| logsite-0.5.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.6 MB
Release files / logsite-0.5.1.tar.gz
| Download URL | logsite-0.5.1.tar.gz |
|---|---|
| Size | 1.4 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
bcda6a1c82e0e12aad753767ddbdadff57845cbd3316263756e7121807d4f8ed
|
|
BLAKE2b-256 checksum How to use checksums |
6230e85b14a56855ac2f59a899f4b45680adf6b538677940f82aa78a97703976
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 25, 2026.
Transparency logRelease files / logsite-0.5.1-py3-none-any.whl
| Download URL | logsite-0.5.1-py3-none-any.whl |
|---|---|
| Size | 259.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
1a1300fb56b13021564624c0acede2208ad2f096f9db2212ba5b2d187f64d40b
|
|
BLAKE2b-256 checksum How to use checksums |
b6f11ca2e161bc27d7847ef0cd05950b5346f06e9feaedf722aa2a629a65315c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 25, 2026.
Transparency logSecurity for logsite 0.5.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.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for logsite-0.5.1.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 25, 2026.
Transparency logA 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.