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

Graylog Bundle Laravel Package

elcweb/graylog-bundle

Symfony bundle that provides a Monolog GELF handler for sending log messages to a Graylog server over UDP. Install via Composer, register the bundle in your kernel, then configure hostname, port, and the gelf handler in config.yml.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. This is a Symfony bundle (ElcwebGraylogBundle), not a Laravel package, so it only fits stacks that still use the legacy app/AppKernel.php bundle-registration model (Symfony 2.x/3.x era). Its entire contribution is a thin service definition (elcweb.graylog.monolog.gelf_handler) that wires Monolog to a GELF handler, plus two scalar parameters (hostname, port). There is no framework-specific value beyond that wiring; the bundle is a convenience shim over monolog/monolog and graylog2/gelf-php, both of which remain actively maintained.

Integration feasibility. Technically trivial, but functionally redundant. Everything this bundle does can be reproduced in a modern Monolog configuration with the native GelfHandler and a graylog2/gelf-php transport in a handful of lines. For a Laravel codebase this package does not integrate at all without adaptation; Laravel already exposes Monolog through config/logging.php and supports custom handlers cleanly. The "latest stable" install path (composer require elcweb/graylog-bundle) is misleading relative to the archived status and the 2016 copyright date.

Technical risk. High relative to the value delivered:

  • Abandoned/archived. No upstream fixes, no security patching, no compatibility work for current PHP or Symfony.
  • UDP-only transport. The README explicitly states UDP is the sole transport: fire-and-forget, no delivery guarantees, no retry, no TCP/TLS. This is acceptable for best-effort diagnostics but unsuitable for audit or compliance-grade logging.
  • Transitive dependency exposure. It pulls Monolog and gelf-php indirectly and pins them at an era-appropriate range; that can block or conflict with modern versions in the lockfile.
  • Zero adoption signal. 0 stars, 0 dependents, README-only maturity. There is effectively no community to validate behavior or surface defects.

Key questions.

  1. Is the target stack actually Symfony 2/3, or is this being evaluated for a Laravel app where it does not apply?
  2. Do we require TCP/TLS or guaranteed delivery to Graylog, or is best-effort UDP acceptable?
  3. Can we achieve the same outcome with the first-party Monolog GelfHandler and drop this dependency entirely?
  4. What are the PHP and Symfony version constraints in composer.json, and do they conflict with our platform?
  5. Who owns the fork if we choose to keep it, and what is the exit criterion?

Integration Approach

Stack fit. Poor for Laravel, marginal for legacy Symfony. Laravel's logging facade is built on Monolog; adding Graylog means registering a custom Monolog handler in config/logging.php, not installing a Symfony bundle. If the platform is Symfony 4/5/6, bundles still exist conceptually but the kernel-registration pattern in the README is obsolete and the package has not been updated for Flex. In either case, the bundle is the wrong abstraction layer for a new integration.

Migration path. Recommended: do not integrate this package. Instead:

  1. Add graylog2/gelf-php (and Monolog's GelfHandler) directly.
  2. In Laravel, define a graylog channel in config/logging.php using a monolog driver with the GELF handler and per-environment host/port from .env.
  3. For Symfony, configure the monolog bundle's gelf handler (type: gelf) with the GELF publisher service.
  4. If this package is already present in a legacy codebase, treat the migration as a dependency removal: replace the service-based handler config with the native handler config, then drop the bundle from composer.json.

Compatibility. Before any decision, inspect the package's composer.json for PHP and Symfony constraints and diff against our composer.lock. Given the 2016 provenance, expect PHP 5.6/7.x-era constraints and Symfony 2/3 bounds. Treat any modernization as a fork-and-maintain commitment, not a supportable dependency.

Sequencing.

  1. Confirm the actual framework (Laravel vs. Symfony) and the required transport (UDP vs. TCP/TLS).
  2. Spike the native Monolog GELF handler in a non-production environment; verify Graylog input receives structured fields.
  3. If parity is achieved (it will be), document the decision to use the native handler and close out the package evaluation.
  4. Only if a hard constraint forces reuse of the bundle: fork it, raise the dependency floors, add TCP support, and publish internally with an owner and review cadence.

Operational Impact

Maintenance. Archived status means zero maintenance from upstream. Any PHP, Symfony, Monolog, or gelf-php upgrade that breaks compatibility becomes our incident. The package is also effectively undocumented beyond the README, so there is no canonical behavior reference to test against.

Support. No vendor, no community (0 stars/dependents), no active issue triage. Operational support falls entirely on the adopting team. A fork is viable but carries ongoing review and CVE-watch responsibilities for the transitive dependency chain.

Scaling. UDP is the primary scalability concern. Under high log volume, datagrams are silently dropped by the network, the kernel buffer, or Graylog's UDP input. There is no backpressure, no acknowledgment, and no retry, so log completeness degrades invisibly as throughput rises. GELF-over-UDP also has a practical message-size ceiling; large stack traces and exception dumps get truncated or require chunking (which the bundle does not advertise). TCP/TLS transport is not offered, so encryption and delivery guarantees are unavailable without a fork.

Failure modes.

  • Silent log loss under load, on network congestion, or if Graylog's UDP input is misconfigured on port 12201.
  • No retry buffer: a Graylog outage or restart window loses all events during the gap.
  • DNS or host resolution failure at handler construction can break logging initialization entirely.
  • Version conflicts from stale transitive pins can prevent composer install from resolving after an unrelated dependency bump.
  • Large-payload truncation producing incomplete stack traces during the exact incidents you need them for.

Ramp-up. Configuration itself is trivial (two parameters and a handler block), so ramp-up is minutes for anyone familiar with Monolog. The real ramp-up cost is educational: engineers must understand GELF, Graylog inputs, and the UDP delivery semantics to avoid the false confidence the package's simplicity conveys. A team adopting this should budget time for a runbook that documents the best-effort nature of the logs, the absence of retries, and the requirement to verify Graylog ingestion after any infrastructure change. For a greenfield integration, the native Monolog handler carries the same ramp-up with none of the abandonment risk, making this package difficult to justify on any dimension other than preserving an existing legacy configuration.

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.
ignibyte/aic-framework
glavweb/data-schema-bundle
glavweb/datagrid-bundle
tacticmedia/scim-server
uni-method/frame
neika-ai/sdk
adachsoft/php-code-style
pharaonic/laravel-notification-dependencies
beautinow/translug
dev-brainiac/bot-cloaked
octoberrain/html
octoberrain/extension
octoberrain/exception
octoberrain/contracts
frankyso/ipaymu
3mdikram/worldmoneywords
snowsoft/config
itmosoft/laravel-subscriptions
larva/laravel-ai-qwen
adachsoft/api-version-bundle