PHP: регистрируйте ошибки в файле, но не отображайте их в запросах POST / GET

#php #error-handling #jsonp #ini #logfile

#php #обработка ошибок #jsonp #ini #файл журнала

Вопрос:

Я хочу регистрировать все ошибки PHP в файле журнала, но я не хочу отображать их пользователю.

Я использую следующую конфигурацию в php.ini

 track_errors=On
error_reporting = E_ALL
log_errors=On
display_errors = Off
error_log = php-error.log
date.timezone = Europe/Berlin
 

Проблема, с которой я сталкиваюсь прямо сейчас:
Я использую ионное приложение. Это запрашивает некоторые файлы php на моем сервере. Когда этот php-файл содержит некоторые предупреждения, они тоже передаются, и приложение Ionic перестает работать, поскольку оно просто ожидает jsonp ответа с callback помощью , и не допускает никаких повторных утверждений или подобных вещей. Поэтому я использую error_reporting(0); в начале каждого файла, но это снова полностью закрывает ошибки.

Как я могу полностью отключить передачу / отображение ошибок и просто записать их в файл?

Комментарии:

1. display_errors = Off должно сработать, вы уверены, что используете правильный файл php.ini? Вам нужно перезагрузить сервер после внесения изменений в php.ini, чтобы они вступили в силу.

2. Я использую управляемый сервер. Я не уверен, смогу ли я перезапустить этот компьютер. Но если я могу доверять phpinfo(); , то display_errors должен быть выключен.

3. Что произойдет, если вы поместите ini_set(‘display_errors’, ‘0’); в начало вашего php-скрипта?

Ответ №1:

Другим решением является реализация вашего собственного скрипта / класса обработчика ошибок, который вы можете включить в свой проект или в каждый скрипт вашего приложения. Это позволит вам воспользоваться преимуществами регистрации любой ошибки, которую вы хотите.