error_log
funkcja
Zapisuje komunikat do logu błędów PHP, wysyła go e-mailem lub do pliku. Podstawowe narzędzie do logowania błędów na produkcji.
error_log(string $message, int $message_type = 0, ?string $destination = null, ?string $additional_headers = null): bool
error_log wysyła wiadomość do skonfigurowanego systemu logowania błędów. Parametr $message_type określa cel:
0— domyślny log PHP (plik wskazany przezerror_logwphp.ini)1— e-mail na adres$destination3— plik wskazany przez$destination(bez automatycznego znaku nowej linii)
Na produkcji nigdy nie wyświetlaj szczegółów błędów użytkownikowi — zamiast tego zapisz je przez error_log i pokaż użytkownikowi przyjazny komunikat.
<?php
declare(strict_types=1);
// Zapis do domyślnego logu PHP:
error_log('Błąd połączenia z bazą danych dla użytkownika ID=42');
// Zapis do własnego pliku:
$komunikat = date('Y-m-d H:i:s') . ' Brak pliku konfiguracji' . PHP_EOL;
error_log($komunikat, 3, '/var/log/moja-aplikacja.log');
// Typowy wzorzec — złap wyjątek, zaloguj, pokaż przyjazny komunikat:
try {
// ... operacja która może rzucić wyjątek
} catch (\Exception $e) {
error_log('Wyjątek: ' . $e->getMessage() . ' w ' . $e->getFile() . ':' . $e->getLine());
echo 'Wystąpił błąd. Spróbuj ponownie później.';
}