Logowanie z użyciem middleware (np. przechwytywanie wyjątków w frameworku)
Założenie: Pokażemy, jak za pomocą middleware przechwytywać wyjątki i logować je w aplikacji PHP, na przykładzie frameworka Symfony.
Krok po kroku:
- Tworzenie middleware: Stwórzmy klasę middleware, która będzie przechwytywać wyjątki. W Symfony można to zrobić tworząc klasę implementującą interfejs
KernelEvents::EXCEPTION
.logger = $logger; } public function onKernelException(ExceptionEvent $event) { $exception = $event->getThrowable(); $this->logger->error($exception->getMessage(), ['exception' => $exception]); // Opcjonalnie: Możesz tutaj dodać własne obsłużenie błędu, np. wyświetlenie strony błędu. } } ?>
Ten kod tworzy middleware, który przyjmuje obiekt Loggera i loguje komunikat o błędzie wraz ze szczegółami wyjątku.
- Rejestracja middleware: Zarejestruj middleware w konfiguracji aplikacji Symfony. W pliku
config/services.yaml
dodaj następującą konfigurację:services: App\Middleware\ExceptionMiddleware: arguments: ['@logger'] tags: - { name: kernel.event_subscriber, event: kernel.exception }
To zarejestruje nasz middleware jako subskrybenta zdarzenia
kernel.exception
. - Testowanie: Wywołaj intencjonalnie błąd w aplikacji, aby przetestować działanie middleware. Na przykład, spróbuj odwołać się do nieistniejącej metody. Sprawdź logi aplikacji, aby upewnić się, że błąd został poprawnie zalogowany.
Pamiętaj, że ten przykład jest uproszczony i może wymagać modyfikacji w zależności od używanego frameworka i konfiguracji.
Ten przykład pokazuje podstawy logowania błędów za pomocą middleware. Zachęcamy do dalszego zgłębiania tematu i eksperymentowania z różnymi sposobami obsługi wyjątków.