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 przez error_log w php.ini)
  • 1 — e-mail na adres $destination
  • 3 — 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.';
}
📘 Naucz się w lekcji →