Возможно ли, чтобы все ошибки PHP записывались в MySQL вместо стандартного файла error_log. Я предполагаю, что это было бы возможно, если бы я написал свой собственный обработчик ошибок с нуля, но у меня есть много устаревшего кода на месте, и в идеале я бы просто сделал 1 глобальное изменение, и это было бы так. Это можно сделать?Вывод всех ошибок PHP в базу данных not error_log
6
A
ответ
18
Я не думаю, что это может быть сделано без построения собственного обработчика ошибок, но технически, то есть один глобальное изменение вы ищете.
Модифицированный пример из manual:
function myErrorHandler($errno, $errstr, $errfile, $errline)
{
// you'd have to import or set up the connection here
mysql_query("INSERT INTO error_log (number, string, file, line) ".
"VALUES .....");
/* Don't execute PHP internal error handler */
return true;
}
затем
// set to the user defined error handler
$old_error_handler = set_error_handler("myErrorHandler");
2
Похоже, что функция php set_error_handler
может делать то, что вы ищете. В первом примере вы можете добавить некоторые вставки mysql для записи своих ошибок в базу данных.
Я 99% положительных вы не можете просто положить что-то в php.ini и это произошло. При этом написание пользовательского обработчика ошибок займет у вас около 5 минут. – Erik