dennisvanbeersel/symfony-logger-client
App\Exceptions\Handler; the bundle may need to hook into throw_illuminate_exception or Illuminate\Foundation\Bootstrap\HandleExceptions.SingleHandle) must be extended or wrapped to forward logs to AppLogger.config/packages/applogger.yaml must be mapped to Laravel’s config/applogger.php or environment variables.events:dispatch) can replicate this but require custom glue code.| Risk Area | Mitigation Strategy |
|---|---|
| Breaking Changes | Bundle is pre-release (2026 date). Validate API stability via changelog or vendor support. |
| Performance Overhead | Test async log delivery under load; ensure Laravel’s queue driver doesn’t bottleneck. |
| Log Format Mismatch | AppLogger may expect Symfony-specific log structures (e.g., context keys). Transform logs in a Monolog processor. |
| Dependency Conflicts | Check for version conflicts with Laravel’s Monolog, Guzzle, or Symfony components. |
| Debugging Complexity | Errors logged to AppLogger may not sync with Laravel’s log:read or Tail. Use dual logging during ramp-up. |
Phase 1: Error Tracking Only
App\Exceptions\Handler) to forward uncaught exceptions to AppLogger.throw_illuminate_exception event listener, bus:dispatch for async delivery.Phase 2: Log Aggregation
$log->pushHandler(new AppLoggerHandler(
config('applogger.api_key'),
new GuzzleHttpClient(),
new AsyncQueue() // Laravel's queue
));
Processor to standardize log format, Log::stack() for dual logging.Phase 3: Full Feature Parity
kernel.exception) using Laravel’s events.Event::listen, app['request'] in service providers.| Component | Laravel Equivalent | Integration Notes |
|---|---|---|
| Symfony EventDispatcher | Laravel Events | Replace EventDispatcher->addListener() with Event::listen(). |
| Monolog | Laravel’s Log Facade | Use Log::getMonolog() to access the underlying handler stack. |
| Config System | Laravel Config | Move applogger.yaml to config/applogger.php or .env. |
| HttpFoundation | Illuminate\Http | Transform Request/Response objects to Symfony’s equivalents for context data. |
| Console Commands | Laravel Artisan | Register commands via Artisan::command(). |
.env) vs. Symfony’s static YAML may require additional validation (e.g., runtime config checks).symfony/http-client). Laravel may need shims or polyfills if versions diverge.Log::stack() to duplicate logs to Laravel’s default handler during development.X-Request-ID) are forwarded to AppLogger for cross-system tracing.How can I help you explore Laravel packages today?