2014-01-25 4 views
0

CodeIgniter 2.x по-прежнему использует классический mysql. Мы все знаем, что это плохая практика, чтобы все еще использовать его, но моя работа по-прежнему требует от меня использования CodeIgniter.Также подавляет ошибку из журналов

У меня всегда есть мой Console.app (OSX), открывающий просмотр моих журналов ошибок Apache/MySQL/PHP/CodeIgniter.

Теперь у меня есть все уведомления/ошибки/etc. постоянно фиксируется, когда я вижу их и постоянно отслеживаю свое развитие с помощью Webgrind на моем MAMP.

Назад к началу; У меня постоянно есть одна большая раздражающая вещь, каждая страница-загрузка PHP всегда дает ошибку около mysql_pconnect, которая будет устаревать в будущем.

В драйвере CodeIgniter команда подавляется @, чтобы не печатать предупреждения на экране, но все же заканчивается в моих журналах.

Есть ли жизнеспособный способ, кроме одной такой ошибки, в частности, в PHP-коде или в настройках PHP?

Локально я мог бы перекомпилировать весь ядро ​​PHP и просто удалить предупреждение, но я хотел бы, чтобы журналы на наших производственных установках также избавлялись от этих предупреждений: P.

Заранее благодарен!

ответ

1

Традиционно вы можете использовать множество ошибок при использовании error_reporting(E_ALL^E_NOTICE^E_DEPRECATED) (т. Е. Сообщать обо всем - кроме уведомлений и предупреждений об устаревании), как указано в "disabling deprecated errors".

Ваша проблема может быть связана с тем, что CodeIgniter принимает на себя ответственность за все ошибки.

system/core/CodeIgniter.php вызывает функцию set_error_handler. Вы можете найти и изменить функцию _exception_handler, которую она вызывает при ошибке в system/core/Common.php. Он не является настраиваемым, поэтому вы можете просто изменить строку, начинающуюся с $is_error.

+0

Благодарим за информацию Jacob. Я добавил в '_exception_handler' пользовательское совпадение '$ message' для полной строки, поэтому он просто пропустит регистрацию для этой точной ошибки. Наконец, чистые журналы, спасибо! –

Смежные вопросы