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

Laravel Logging Laravel Package

eur-rsm/laravel-logging

A Laravel logging package from eur-rsm that helps streamline log configuration and management within Laravel applications. It integrates with Laravel’s logging system to support consistent, maintainable application logs and a cleaner, more organized logging setup across environments.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. Laravel's logging stack is unusually accommodating to this class of package. Enrichment is normally layered in at one of three seams: a Monolog processor (mutates the record before handlers run), a tap on an existing channel (Laravel's tap array in config/logging.php), or a custom formatter. All three are additive — none require forking the framework, replacing the Log facade, or altering call sites. That means a package like eur-rsm/laravel-logging can, in the best case, be dropped into the container via a service provider and auto-discovered, with the only operator-facing change being a config file and a composer require. Architecturally, this is a low-blast-radius insertion point, which is the strongest argument in its favour.

The counterargument is that the seam is also trivially accessible to first-party code. Laravel ships Log::withContext(), Context facade integration, and a documented processor/tap pattern. A 30–60 line processor plus a RequestId middleware delivers request ID, user ID, tenant, and correlation ID enrichment with zero third-party surface. For a TPM, the central evaluation question is therefore not "does this integrate?" but "what does this package do that the framework's own context primitives do not?" With zero stars, zero dependents, and a one-line description, that value proposition is entirely unverified.

Integration feasibility. Mechanically high: Composer install, optional package auto-discovery, a publishable config file. Realistically gated on four unknowns that must be settled before a spike is scheduled — (1) declared PHP and illuminate/* constraints, particularly whether Monolog 3 is supported, since Monolog 3 changed record/handler contracts and Laravel 11 moved to it; (2) whether enrichment is implemented as a processor, a tap, or an override of Laravel's LogManager, the last of which is a meaningful upgrade hazard; (3) whether it is registered globally or per-channel, since global registration changes log output for every existing channel and every downstream parser; (4) whether the repository is even installable from Packagist under that vendor name, or must be consumed as a VCS path repository.

Technical risk. This is the dominant consideration and it is severe. A package with no stars and no dependents has no production corpus — no issue history to mine for edge cases, no downstream projects exercising version upgrades, no independent security review. Supply-chain exposure is asymmetric: adopting it grants its publish credentials and any transitive dependencies execution inside every request and queue worker. The vendor namespace (eur-rsm) is not a recognised Laravel ecosystem publisher, so there is no organisational reputation to price in. The realistic outcome distribution is: (a) a thin, single-purpose utility that works and is abandoned, (b) an early-stage personal experiment, or (c) a private package published publicly by accident. All three resolve to the same recommendation — do not take a hard dependency.

Key questions.

  • What exactly is enriched — correlation/request ID, authenticated user, tenant, Git SHA, host, exception context, trace IDs? Which of these are already covered by Log::withContext()?
  • Is the package a processor, a tap, a channel driver, or a LogManager override?
  • What are the composer.json constraints for PHP, illuminate/support, and monolog/monolog? Is Monolog 3 supported?
  • Is it on Packagist? What is the licence? Is there a CHANGELOG, a test suite, CI configuration, or a static-analysis baseline?
  • Does enrichment read request-scoped state (session, auth guard) in a way that breaks in queue workers and scheduled commands?
  • Does it redact, or does it expand what gets written — specifically, does it serialise the full request body or user model into every record?

Integration Approach

Stack fit. Appropriate only for a modern Laravel service (10/11+) with structured, machine-parsed logs — JSON to stdout feeding a log aggregator. In that context, consistent contextual fields are genuinely valuable: they make request_id the join key across application logs, queue logs, and traces. In a legacy app with free-text log files and no aggregator, enrichment adds bytes and risk with no consumer.

Migration path. Do not adopt as a dependency first. Run a bounded spike: install in a throwaway branch of a single low-risk service, capture the before/after log diff, and read the source end to end (it is almost certainly small). Then decide between two paths. Path A — vendor the dependency: pin an exact version, require it via a path or vcs repository in your own controlled mirror, and treat upgrades as manual reviews. Path B — lift the pattern: reimplement the enrichment as a first-party processor registered through config/logging.php taps. Given the likely size of the code, Path B is usually cheaper than the governance overhead of Path A, and it eliminates the supply-chain question outright. Path B also positions you correctly for OpenTelemetry, which is where correlation-ID strategy is converging.

Compatibility. Verify three specific breakpoints before committing: Monolog 2 vs 3 processor signatures; whether the package's service provider uses any deprecated Illuminate\Log internals; and whether enrichment fields collide with keys already emitted by your existing processors or by the aggregator's own reserved fields. Field-name collisions cause silent overwrites, not errors — check deliberately.

Sequencing. (1) Source review and licence/Packagist confirmation. (2) Spike in non-production with the log diff captured and reviewed by whoever owns the log schema. (3) PII review of the enriched output. (4) Rollout to one service, one channel, behind a config flag. (5) Only then consider broadening — and only if the enrichment has a named downstream consumer (a dashboard, an alert, a trace join) rather than being generically "nice to have."

Operational Impact

Maintenance. Assume abandonment. Single-author, zero-adoption packages have a high prior of going unmaintained within a year, which matters because logging sits on the hot path of every request and job. Mitigate by pinning exact versions and vendoring or mirroring so that a deleted repository or yanked tag cannot break composer install in CI. Budget an explicit annual review to re-evaluate against the framework's native context features, which are improving and will progressively erode the package's reason to exist.

Support. Effectively none — no SLA, no maintainer capacity to absorb your issues, no security disclosure process. Internal ownership must be assigned before adoption: someone on the platform team is on the hook for reading the source, understanding it, and being able to replace it. If no one will own it, it should not go in.

Scaling. Per-record enrichment executes on every log line, including high-volume debug paths and exception storms. Assess cost in two dimensions: CPU (usually negligible unless enrichment does I/O — a DB lookup for tenant or a call to a config service would be disqualifying) and volume, since enriched records can be several times larger and log ingestion is billed by bytes. If enrichment includes stack traces or serialised models, the aggregator bill can move materially. Also confirm behaviour under LOG_CHANNEL=stack and in queued jobs where request-scoped context is absent.

Failure modes. Ranked by likelihood and severity:

  1. Enrichment throws inside the processor — the record is lost or the request 500s, depending on Monolog's error handling. Any enrichment touching auth, session, or an external service must be exception-safe. This is the failure to test explicitly.
  2. PII expansion — user models, tokens, or headers leaking into log storage, converting a logging change into a compliance incident.
  3. Recursive logging — a processor that logs its own failures loops.
  4. Silent schema break — a field rename or a Monolog upgrade changes the emitted shape and quietly breaks dashboards and alerts downstream.
  5. CI/build break — upstream tag deletion or a constraint conflict during an unrelated composer update.

Ramp-up. Developer ramp-up is low — the integration surface is a config file and a Composer line, and the code is small. Organisational ramp-up is higher than it looks: log schema becomes a shared contract, so the aggregator/dashboard owners, the on-call rotation, and whoever signs off on PII all need to be in the review. Estimate a day for the spike and source review, and treat the governance conversation — not the code — as the long pole.

Recommendation. Do not adopt as a production dependency in its current state (zero stars, zero dependents, unverified licence and maintenance posture). Run a one-day spike purely to harvest the enrichment pattern, then implement it as a first-party Monolog processor or channel tap under platform-team ownership. Revisit only if the package gains a real user base, a security policy, and a compatibility statement covering current Laravel and Monolog majors — or if source review reveals a non-trivial capability that first-party context plumbing cannot replicate, which is unlikely.

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.
shitoudev/permissionmanager
johannesclimacus/laravel-tui
hocvt/seotools
vitalybaev/sypexgeo
amphibee/themosis-ignition
gito-me/fast-excel
frankyso/laravel-ipaymu
geolize-studio/laravel-chile
boomerangui/chat
jinas/dhivatar
store-doc/laravel-storage-driver
plus-it/laravel-translation-manager
diephp/perhaps
diephp/telegraph
osmaviation/spreadsheet
microsoft/fluentui-system-icons
mmccook/php-json-canonicalization-scheme
middlewares/firewall
qubiqx/montapacking
nyoncode/laravel-package-console