Логи ошибок в PHP — как быстро настроить и что реально работает
Короче, нужна простая и надежная схема логирования ошибок в PHP. Самое базовое — включить error_reporting(E_ALL), display_errors выключить (иначе на проде будет срач в выводе), и указать error_log, чтобы писать куда-то в файл.
Варианты, которые встречал и юзал:
1. php.ini — настроить display_errors=Off, log_errors=On и error_log=/путь/к/файлу.log. Минус — иногда неясно, когда он реально пишет и с каким уровнем ошибок.
2. В скриптах вручную через ini_set('log_errors', 1) и ini_set('error_log', 'путь'). Так можно подстраивать под разные части проекта.
3. Использовать set_error_handler — ловишь ошибку свои функции и логируешь как хочешь (в базу, в другой файл). Гибко, но требует понимания.
4. Framework-решения — если Laravel или Symfony, там свои механизмы, но для чистого PHP лучше не заморачиваться.
5. На проде часто ставлю rotate логов через logrotate или аналог — чтобы логи не росли до гигабайтов.
Еще проверяйте, что владелец и права на папку с логами подходят — часто из-за этого тишина в error_log.
Кто как обычно ведет логи в простых PHP-проектах? Может есть нестандартные идеи?