Dziennik błędów w WordPress (Error Log) – co to jest?

Dziennik błędów to plik tekstowy na serwerze, do którego WordPress i PHP zapisują komunikaty o błędach, ostrzeżeniach i powiadomieniach. Zamiast wyświetlać błędy na stronie — trafiają one do pliku, gdzie można je przejrzeć bez angażowania odwiedzających.

Do czego służy dziennik błędów

Gdy w kodzie strony coś pójdzie nie tak — nieistniejąca funkcja, brakujący plik, przekroczenie limitu pamięci — PHP generuje komunikat o błędzie. Ten komunikat zawiera:

  • rodzaj błędu (Fatal error, Warning, Notice, Deprecated)
  • opis problemu
  • ścieżkę do pliku, w którym błąd wystąpił
  • numer linii kodu

Dziennik błędów pozwala przejrzeć te komunikaty bez narażania odwiedzających na widok technicznych szczegółów błędów. Jest szczególnie przydatny przy debugowaniu wtyczek, motywów i niestandardowego kodu.

Jak włączyć dziennik błędów w WordPress

Konfiguracja odbywa się przez stałe systemowe w pliku wp-config.php. Więcej o stałych: Stałe systemowe WordPress.

define( 'WP_DEBUG', true );          // aktywuje tryb debugowania
define( 'WP_DEBUG_LOG', true );      // kieruje błędy do pliku
define( 'WP_DEBUG_DISPLAY', false ); // nie wyświetla błędów na stronie

Te trzy stałe działają razem. Samo WP_DEBUG = true bez WP_DEBUG_LOG spowoduje wyświetlanie błędów na stronie — co jest nieodpowiednie na stronach dostępnych publicznie.

Na stronach produkcyjnych należy zawsze ustawiać WP_DEBUG_DISPLAY na false. Wyświetlanie błędów PHP na ekranie ujawnia ścieżki plików serwera i strukturę kodu — informacje, które mogą być użyteczne dla atakujących.

Gdzie jest plik debug.log

Domyślna lokalizacja to:

/wp-content/debug.log

Plik tworzy się automatycznie przy pierwszym błędzie, jeśli WordPress ma uprawnienia do zapisu w katalogu wp-content. Jeśli plik nie pojawia się mimo aktywnego logowania — najczęstsza przyczyna to brak uprawnień do zapisu (problem z uprawnieniami plików) lub brak uprawnień PHP na poziomie serwera.

Ważne: plik debug.log w domyślnej lokalizacji jest publicznie dostępny przez przeglądarkę pod adresem https://twojadomena.pl/wp-content/debug.log. Zawiera ścieżki plików serwera — warto go chronić przez regułę .htaccess lub przesunąć do lokalizacji poza katalogiem publicznym.

Lokalizację pliku można zmienić przez przekazanie ścieżki do stałej WP_DEBUG_LOG:

define( 'WP_DEBUG_LOG', '/var/log/wordpress/debug.log' );

Jak czytać komunikaty błędów

Typowy wpis w pliku debug.log wygląda tak:

[31-May-2026 14:23:11 UTC] PHP Fatal error: Call to undefined function moja_funkcja() 
in /var/www/html/wp-content/plugins/moja-wtyczka/moja-wtyczka.php on line 47

Składowe komunikatu:
– Data i godzina — kiedy błąd wystąpił
– Typ błędu — Fatal error zatrzymuje wykonanie strony; Warning i Notice to problemy, które nie przerywają działania, ale sygnalizują potencjalne błędy w kodzie
– Opis — co się stało
– Plik i linia — gdzie szukać problemu

Błędy Deprecated informują o użyciu funkcji PHP lub WordPressa, która zostanie usunięta w przyszłych wersjach. Same w sobie nie psują strony — ale warto je usunąć, żeby kod był gotowy na przyszłe aktualizacje.

Plik log może rosnąć do bardzo dużych rozmiarów

To realne ryzyko, szczególnie gdy błąd pojawia się przy każdym ładowaniu strony. Tysiące wpisów dziennie mogą wypełnić gigabajty przestrzeni dyskowej w ciągu tygodnia.

Warto regularnie sprawdzać rozmiar pliku i czyścić go po rozwiązaniu problemu. Plik można bezpiecznie usunąć — WordPress stworzy nowy przy kolejnym błędzie. Niektórzy właściciele stron ustawiają automatyczne rotowanie logów (log rotation) przez cron serwera.

Narzędzia do przeglądania logów

Query Monitor — wtyczka WordPress wyświetlająca błędy PHP, zapytania SQL i inne informacje diagnostyczne w panelu administratora na żywo, bez czytania surowego pliku.

Site Health (Stan Witryny) — wbudowane narzędzie WordPress (Narzędzia → Stan Witryny) informuje o problemach z konfiguracją, które mogą wpływać na działanie strony. Nie jest to dziennik błędów PHP, ale dobre miejsce do sprawdzenia kondycji środowiska. Więcej: Site Health w WordPress.

Bezpośredni dostęp do pliku — przez FTP/SFTP, przez panel plików hostingu lub przez SSH (jeśli dostępny). Na małych stronach to często najszybsza metoda.

Dziennik błędów a php.ini

Plik php.ini na poziomie serwera również steruje logowaniem błędów PHP przez dyrektywy error_reporting i log_errors. Ustawienia w wp-config.php działają na poziomie aplikacji — mogą nadpisywać konfigurację serwera tylko wtedy, gdy hosting na to pozwala. Więcej o php.ini: Plik php.ini w WordPress.