Прежде всего ошибки или исключения? PHP отличается между ошибками и исключениями. Как правило, может представлять интерес раздел Обработка ошибок и ведение журнала & shy; Docs данного руководства.
Для ошибок:
error_get_last
& shy; Документы вернет последнюю ошибку со следующей информацией: Тип (целое число), Сообщение (строка), Файл (строка) ) и строка (целое число). Я бы сказал, это говорит само за себя. Возможно, вам также захочется взглянуть на set_error_handler
& shy; Docs , которая, наряду с этими четырьмя битами информации, также предложит вам ошибку контекст вы можете использовать.
Если вам нужна дополнительная информация об ошибке, в PHP есть также обратная трассировка debug_backtrace
& shy; Docs , которая может добавить еще больше контекста.
Для исключений:
Каждый Exception
& shy; Документы имеет похожие члены: сообщение (строка), код (целое число), файл (строка) и строка (целое число) ). Он также имеет трассировку, которая содержит больше информации и может быть использована в качестве контекста. Также возможно установить предыдущее исключение для вложенных исключений. Как и обработчик ошибок, можно также использовать обработчик исключений: set_exception_handler
& shy; Docs .
Обладая предоставленной информацией, вы сможете обрабатывать и регистрировать все ошибки / исключения таким образом, чтобы впоследствии их можно было проанализировать. Кроме того, также возможно использовать протоколирование ошибок PHP и сохранять эти ошибки в базе данных. См. Вывод всех ошибок PHP в базу данных, а не error_log
для простого примера. Я бы сказал, что ключевым моментом является то, что вы храните информацию об ошибках в более или менее нормализованной форме, чтобы позже вы могли определить критерии их подсчета / группировки.
Если вам нужна дополнительная инфраструктура, взгляните на проект apache logging services , который предлагает некоторые инструменты (например, viewer ) и для него существует PHP-логгер, тоже ( log4php ).
Но это только пример, существуют и другие инструменты, некоторые из них используют бэкэнд MySQL, и вы можете отслеживать не только PHP, но и другие ошибки.