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:

  1. 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.

  2. 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.

  3. 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.

Dodaj komentarz 0

Your email address will not be published. Required fields are marked *