litermi/logs
litermi/logs is a Laravel/PHP package that simplifies application logging with configurable log handling and easy integration into Laravel projects. Use it to capture, organize, and review runtime events for debugging and monitoring.
Architecture fit
The package addresses a genuine gap: routine-level tracing plus SQL query capture is precisely the layer where Laravel applications are least observable out of the box. Laravel's native Log facade captures application events but not query execution; DB::listen exists but requires hand-rolled wiring. If litermi/logs packages that wiring into a service provider with publishable config, it occupies a legitimate cross-cutting concern in the framework's bootstrapping layer — no intrusion into domain code, which is the right architectural placement for an observability utility.
That said, the capability overlaps almost entirely with laravel/telescope (query watching, request tracing, slow-query detection) and barryvdh/laravel-debugbar for local work. The package must justify itself on footprint, production-safety, or log-format ergonomics rather than on capability alone. It also overlaps with plain structured logging via Monolog channels. The TPM question is not "does it work" but "what does it replace, and is that replacement cheaper to own."
Integration feasibility
Mechanically trivial: composer require, Laravel package auto-discovery, optional php artisan vendor:publish for config, env flags to toggle. A competent Laravel engineer can have it emitting logs in an afternoon. The real effort is not integration — it is validation. With zero stars, zero dependents, and no score, there is no external evidence that the package has ever run in a production application other than its author's.
Technical risk
DB::listen callback executes on every query. On query-heavy endpoints this is measurable, and naïve implementations buffer queries in memory until flush.Key questions
composer.json constraints for PHP, illuminate/*, and Laravel major versions? Are they accurate or aspirational?DB::listen, the query log, or middleware — and does it behave correctly under Octane, queued jobs, and multiple connections?Stack fit Assume a standard Laravel application on PHP 8.x with Monolog channels already configured. The package should be treated as a log producer, not a logging stack — it must write into existing channels rather than introduce its own transport. If it insists on its own storage table or file path, that is a design smell and a retention-policy problem you inherit.
Migration path Do not adopt directly. Two viable paths:
DB::listen listener (~50 lines) bound to your own config and redaction rules. Zero dependency, full control, no vendor risk.If Telescope already exists in the stack, the correct decision is usually to use Telescope's query watcher in non-production and structured logging in production, and to take no new dependency at all.
Compatibility
Verify package discovery registers cleanly, that the config file publishes without collision, and that it does not register global middleware or override the default log channel. Test explicitly under Octane (long-lived workers retain listener state), under php artisan queue:work, and with more than one DB connection configured.
Sequencing
Maintenance Ongoing cost is low in code and high in ownership. Pin the exact version, disable automatic minor upgrades, and budget for a fork the moment a Laravel major release lands. Treat the fork as the expected steady state, not the contingency — with one maintainer and no release cadence, you will eventually own this code.
Support There is effectively no support tier. No SLA, no issue-triage history, no security contact. Escalation path is "read the source." Acceptable for a dev-only tool; unacceptable for anything on the production critical path without internal expertise to debug it.
Scaling Log volume scales with query volume, not request volume — a page issuing 400 queries multiplies ingest cost accordingly. Requires sampling, parameter truncation, per-environment channel routing, and a hard retention window. Without sampling, this package can double or triple log spend on a query-heavy service.
Failure modes
Each needs mitigation before production: sampling, redaction config, a non-database log channel, a load-test gate, and a version-pin policy.
Ramp-up Installation is an hour. Understanding what the output means, and building the runbook for redaction rules, retention, and the disable switch, is a one-to-two-day effort for one engineer. That engineer becomes the de facto owner — plan for that person to be identifiable and retained.
Recommendation: Do not adopt as a production dependency in its current state. It is a useful reference for building a first-party query-tracing listener, and the cost of that alternative is roughly one engineer-day. Adopt the package only if source review clears the recursion, redaction, and version-constraint questions, and then only behind an internal adapter with a pinned version.
How can I help you explore Laravel packages today?