johndodev/jlog-bundle
johndodev/jlog-bundle is a lightweight logging bundle for PHP applications, making it easy to capture, organize, and review log events with minimal configuration. Integrate structured logging into your project quickly and keep runtime diagnostics simple.
johndodev/jlog-bundle is a Symfony bundle (Twig extension + JS asset, Symfony DI config tree), not a Laravel package. Any roadmap item that assumed "drop-in Laravel logging" should be corrected at the triage stage rather than after engineering effort. Treat this as a portfolio hygiene input, not a feature enabler.dd(), preserving session/CSRF/JS state during multi-step form and POST-handler debugging) is genuinely useful and maps to a real developer-experience pain point. The dependency is not. That is a textbook "reimplement ~40 lines in-house" call, and it should be recorded as such so the same evaluation isn't repeated next quarter.Consider it only under narrow, specific conditions:
dd() in multi-step forms, POST handlers, or middleware.Resources/config/services.* (what's injectable), the Twig extension (public API surface), and Resources/public/js/* (jQuery dependency? payload serialization?).Look elsewhere — or, more accurately, build in-house — when:
JLogServiceProvider singleton, a Blade::directive('jlog', ...), and a Vite-shipped JS asset. That is cheaper than any adapter layer.Log facade, channels, daily/stack drivers) is the correct answer.-bundle suffix on a Laravel request is itself a disqualifier: naming tells you the target ecosystem. Do not assume fit from the package name.To executives: This is a small, MIT-licensed Symfony bundle for developer debugging — it lets engineers inspect server-side values in the browser console without interrupting the page request. It is not a logging or observability platform, it does not fit our Laravel application, and it has effectively no external adoption (zero stars, zero dependents, no maintenance signal). Recommendation: no budget, no roadmap slot, no runtime dependency. The underlying idea — a config-gated, environment-restricted debug helper — is worth roughly a day of engineering to port natively if the team confirms the pain point. Total ask: about one engineer-day, not a procurement or a committed feature. The real product decision it informs is our dependency-allowlist bar, which is worth having written down once.
To engineering: Do not install this into the Laravel app — the Symfony bundle machinery (compiler passes, Twig extension) will not register. Treat it as a reference implementation: read the bundle class for config-tree shape, the services config for what should be injectable, the Twig extension for the public API surface, and the JS asset for payload serialization and jQuery dependencies. Then port the pattern in ~40 lines: a singleton gated on config('jlog.enabled') and app()->environment('local','staging'), a Blade::directive('jlog', ...), and a Vite-delivered JS logger. Two hard requirements on the port: it must be off by default and impossible to enable in production, and it must not leak into committed output — gate the script tag, and scrub any values that could carry secrets or PII. If a Symfony sidecar ever exists in the estate, the bundle becomes a normal, low-stakes evaluation there — but for this codebase, port, don't adopt, and record the decision so we don't re-litigate it.
How can I help you explore Laravel packages today?