logger === null) { // Fallback für den Fall, dass kein Logger verfügbar ist $time = $event->occurredAt->format('Y-m-d H:i:s'); $requestId = $event->requestId ? "[Request: {$event->requestId}]" : ''; $message = "[{$time}] ERROR {$requestId} {$event->context}: {$event->error->getMessage()}"; error_log($message); return; } // Strukturiertes Logging mit LogContext $context = LogContext::withData([ 'error_context' => $event->context, 'occurred_at' => $event->occurredAt->format('c'), 'request_id' => $event->requestId, 'error_class' => get_class($event->error), 'error_file' => $event->error->getFile(), 'error_line' => $event->error->getLine(), ])->addTags('error_event', 'application'); // Current context hinzufügen falls verfügbar if ($this->contextManager !== null) { $currentContext = $this->contextManager->getCurrentContext(); $mergedContext = $currentContext->merge($context); } else { $mergedContext = $context; } $this->logger->error( sprintf('Application error in %s: %s', $event->context, $event->error->getMessage()), $mergedContext ); } }