Jak włączyć wszystkie błędy i ostrzeżenia i zalogować je do pliku, ale aby skonfigurować to wszystko w skrypcie (nie zmieniając niczego w php.ini)?
Chcę zdefiniować nazwę pliku, aby wszystkie błędy i ostrzeżenia były w nim rejestrowane.
php
error-handling
Gorep
źródło
źródło
ini_set
działa tylko wtedy, gdy ten kod jest wykonywany. Nie jest użyteczny w przypadku kodu, który zawiera błędy analizy, ponieważ błąd wystąpi przed wykonaniem kodu. Zamiast tego zapisz te zmiany w php.ini.php_flag log_errors on php_value error_log /home/path/public_html/domain/PHP_errors.log
. Zobacz perishablepress.com/…tmp/php-error.log
którego chcesz wybrać lokalizację?Widzieć
error_log
- Wyślij gdzieś komunikat o błędziePrzykład
Możesz dostosować obsługę błędów za pomocą własnych procedur obsługi błędów, aby wywoływały tę funkcję za każdym razem, gdy wystąpi błąd lub ostrzeżenie lub cokolwiek, co musisz zarejestrować. Aby uzyskać dodatkowe informacje, zapoznaj się z rozdziałem Obsługa błędów w podręczniku PHP
źródło
Po prostu umieść te kody na górze pliku PHP / indeksu:
źródło
display_errors
dodaj ten kod do .htaccess (jako alternatywa dla funkcji php.ini / ini_set ):
* jak skomentowano: dotyczy to serwerów typu Apache , a nie Nginx i innych.
źródło
To moja osobista krótka funkcja
źródło
Spójrz na
log_errors
opcję konfiguracji w php.ini. Wydaje się, że robi to, co chcesz. Myślę, że możesz użyćerror_log
opcji, aby ustawić własny plik rejestrowania.Gdy
log_errors
dyrektywa jest ustawiona naOn
, wszelkie błędy zgłaszane przez PHP będą rejestrowane w dzienniku serwera lub w pliku określonym za pomocąerror_log
. Wini_set
razie potrzeby możesz ustawić te opcje również.(Pamiętaj, że
display_errors
należy wyłączyć w php.ini, jeśli ta opcja jest włączona)źródło
display_errors
wyłączyć, jeśli włączyszlog_errors
? Moim zdaniem nie ma to sensu. :)Ponadto do działania niezbędna jest dyrektywa „AllowOverride Options”. (Apache 2.2.15)
źródło