Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Http Logger Bundle Laravel Package

forci/http-logger-bundle

A Symfony bundle that captures and logs HTTP requests and responses, helping you debug APIs, trace outgoing calls, and inspect traffic in your application. Configurable handlers let you control what gets recorded and where the logs are written.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit

  • The artifact is a Symfony bundle, not a Laravel package. That single fact redefines the TPM's job here: this is not a "should we install this dependency" decision, it is a "should we fund a capability" decision. The capability — structured logging of outbound HTTP requests and responses with method, URI, status, latency, and correlation ID — is legitimately valuable for third-party integration triage, audit, and incident response. The package is a reference design for that capability, not a vehicle for delivering it.
  • As a bundle it registers via Kernel::registerBundles() and a DI Extension. Laravel has no equivalent lifecycle and no package discovery hook for it. The entry point is uninvokable in our stack as shipped.
  • The only potentially portable surface is whatever sits beneath the bundle glue — a PSR-3 decorator or PSR-18 client wrapper would port; a symfony/http-client middleware would not, because Laravel resolves outbound calls through Guzzle via Illuminate\Http\Client. This distinction is the single most important unknown and should be resolved by a source read before any other spend.

Integration feasibility

  • Feasible only as a hand-built shim: a Laravel ServiceProvider that constructs the bundle's services manually, bypassing registration entirely. That is bespoke glue we own and must re-verify on every PHP and Guzzle bump. In practice we would vendor the logging class and discard the Symfony scaffolding — at which point we have adopted a pattern, not a dependency, and should say so plainly to stakeholders.
  • Zero affordances for our stack: no facade, no config publish, no Artisan surface, no auto-discovery. Every integration path costs engineering time before it delivers a single log line.

Technical risk

  • License NOASSERTION is a hard stop. GitHub could not detect a recognized license; absence of a grant defaults to all-rights-reserved. Legal cannot approve commercial use, modification, or redistribution until the actual LICENSE text is reviewed. This is a stop-the-line item that must precede engineering effort, not run alongside it.
  • Adoption signal is nil: 0 stars, 0 dependents, 0 score. No production usage, no downstream projects surfacing breakage, no community triage to mine for known failure modes.
  • Bus factor of one with unknown cadence and no published support posture.
  • Unverified runtime constraints — PHP and Guzzle version compatibility against our pinned stack is unknown and could invalidate the spike before it starts.
  • Compliance exposure by design. HTTP logging captures auth headers, tokens, and request bodies. An unaudited logger is a PII/credential retention liability until redaction behavior is proven, not asserted.

Key questions

  1. What does it actually intercept — symfony/http-client middleware, Guzzle middleware, PSR-18 decorator, or a Monolog handler? Only the last two survive contact with Laravel.
  2. What is the literal license text, and is there a LICENSE file at all?
  3. Does it redact Authorization, cookies, and configurable body fields by default, or is redaction opt-in?
  4. What are the capture bounds — max body size, buffering vs. streaming, sampling support?
  5. Who maintains it, and what does the last 12 months of commit history look like?
  6. (TPM-owned) Which decision does this unblock — logging standard, observability roadmap, or compliance audit trail — and does the library choice actually gate that decision? In our read, it does not.

Integration Approach

Stack fit

  • Poor as shipped, strong as a requirement. Laravel already exposes the interception seam natively: Illuminate\Http\Client\Events\RequestSending, ResponseReceived, and ConnectionFailed, plus Guzzle middleware for gaps. Telescope and Pulse cover dev/staging visibility; a Monolog channel with a correlation-ID processor covers production. The functional requirement is met first-party in roughly 50–80 lines with full control over redaction and sampling.
  • The bundle's likely interception point — Symfony's HTTP client contracts — does not overlap Laravel's client. There is no shared seam to exploit.

Migration path

  • There is nothing to migrate from; we have no incumbent to replace. The realistic path is pattern extraction: read the logging logic, reimplement the useful parts as a Laravel event listener, discard the bundle plumbing. Treat the package as a spec, not a dependency.
  • If leadership insists on consuming the upstream artifact, the path is fork-and-own: vendor the source, strip the bundle, add a service provider, accept full maintenance ownership. This is strictly worse than building it ourselves unless the redaction logic proves unusually sophisticated — and we cannot confirm that without the source read.

Compatibility

  • Laravel auto-discovery will not register a Symfony bundle; a provider is required on every path.
  • PHP constraint unknown — verify against our runtime before any spike.
  • Guzzle version alignment between the bundle's expectations and Laravel's pinned Guzzle needs checking, as does any transitive Symfony DI dependency it drags in.

Sequencing

  1. License review first (legal, ~1–3 days). This gates everything. No engineering time before counsel rules on NOASSERTION.
  2. Source read (1–2 hours, TPM + engineer). Classify the interception contract; confirm redaction defaults. Output: a one-page memo closing the question set above.
  3. Decision gate. If the contract is Symfony-HttpClient-only, close the evaluation and move to in-house implementation with no further spend.
  4. Timeboxed spike (≤2 days) only if legal clears and the contract is PSR-18/PSR-3 portable.
  5. Parallel default track: build the native Laravel event-listener logger now. It is the likely end state regardless of steps 1–4, and starting it early removes the schedule risk from the gating items.

Operational Impact

Maintenance

  • Forking transfers all maintenance to us: PHP version bumps, Guzzle majors, Laravel upgrade cycles. With zero upstream activity, we should assume sole-maintainer status within a quarter of adoption — plan the ownership model before writing the first line, not after.
  • The in-house alternative carries equivalent ongoing cost but across a fraction of the surface area, in code we wrote and understand. From a lifecycle-cost standpoint, the build is cheaper even before the license question is settled.

Support

  • No documentation of substance, no issue triage capacity, no vendor relationship. Any production incident becomes a first-principles investigation using the very tool that was meant to shorten investigations.
  • Adoption requires naming an internal SME as owner. Without one, this package has no support path at all — that is a governance blocker in its own right, independent of the license.

Scaling

  • HTTP logging scales badly by default. Full-body capture on high-volume outbound traffic (payment, shipping, CRM calls) will dominate log storage cost and index spend. Sampling, size caps, and structured rather than stringly output are mandatory, not enhancements.
  • Synchronous emission in the request path adds latency to every outbound call; logging must be buffered or queued behind the request.
  • High-cardinality fields — IDs embedded in URLs, arbitrary headers — will wreck hosted-aggregator cost. Decide the field schema deliberately; this is a TPM-level decision, not a library default.

Failure modes (ranked by severity)

  • License/compliance — blocker. Unresolved rights; cannot be mitigated by engineering effort.
  • PII/credential leakage. Tokens and bodies landing in log storage create a reportable exposure and a retention-policy violation. The highest-severity technical risk.
  • Silent no-op. If the interception contract mismatches Laravel's client, the logger registers cleanly and logs nothing. Failure is invisible until the exact incident where the logs are needed — the worst possible discovery moment.
  • Logger exception in the request path. An unhandled failure in the logging layer can fail the outbound call itself, converting an observability feature into an availability incident.
  • Memory pressure. Unbounded body capture on large responses can exhaust worker memory under load.
  • Abandonment. No security advisories will ever be published; we would be blind to vulnerabilities in a component sitting in the request path of every user interaction.

Ramp-up

  • Low code volume, high investigative cost: no docs means onboarding is a source read. Budget 1–2 engineer-days to characterize plus legal review time.
  • Recommendation: do-not-adopt. Redirect the effort to a native Laravel listener on Illuminate\Http\Client events with a dedicated Monolog channel, a correlation-ID processor, and a reviewed redaction tap. Estimated 2–4 days including tests and redaction sign-off — smaller, cleanly licensed, fully observable, and it retires every risk above.
  • Stakeholder ask: approval to close this evaluation and timebox the in-house build. Escalate the license question only if a stakeholder insists on upstream reuse; in that case, the ask to them is a named SME owner and acceptance of sole-maintenance status as a precondition, not a follow-up. Revisit only if the license resolves and an upstream maintainer commits to a Laravel-compatible path.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
socialdept/tenant-domains
tautvydasr/blade-class-names
socialdept/color-scales
maherelgamil/controller
coleus/widgets
coleus/table
coleus/users
coleus/music
coleus/health
coleus/calendar
coleus/notes
coleus/support
coleus/settings
coleus/apps
seampact/laravel
emmyconceptng/laravel-ng-postcode
jjsquady/round-robin
skyraptor/chatter
edlugz/sasapay
abbasudo/artisan-route