Я не знаю ни одного инструмента, который сделает это автоматически для вас; но это не сложно развить, я думаю ... Тем не менее, я признаю, это займет у вас некоторое время: - (
Просто, чтобы добавить несколько заметок, лучшее решение, которое приходит мне в голову, чтобы регистрировать ошибки:
- зарегистрируйте свой собственный обработчик ошибок с помощью
set_error_handler
- код функции, чтобы она регистрировала ошибки + данные GET / POST
- возможно, это можно / нужно / нужно сделать в какой-то базе данных или структурированном файле (База данных SQLite, может быть: легкая, быстрая, простая в использовании, не зависит от внешнего сервера БД,. ..) , а не просто файлы; было бы легче иметь дело позже.
- разработать приложение "отчетности" ...
- Это то, что займет некоторое время, как вы сказали ...
Используя пример, приведенный на странице руководства, что-то вроде этого, вероятно, подойдет: во-первых, объявите вашу функцию обработки ошибок:
function myErrorHandler($errno, $errstr, $errfile, $errline)
{
$str = '';
switch ($errno) {
case E_USER_ERROR:
$str .= "<b>My ERROR</b> [$errno] $errstr<br />\n";
$str .= " Fatal error on line $errline in file $errfile";
$str .= ", PHP " . PHP_VERSION . " (" . PHP_OS . ")<br />\n";
break;
case E_USER_WARNING:
$str .= "<b>My WARNING</b> [$errno] $errstr<br />\n";
break;
case E_USER_NOTICE:
$str .= "<b>My NOTICE</b> [$errno] $errstr<br />\n";
break;
default:
$str .= "Unknown error type: [$errno] $errstr<br />\n";
break;
}
$str .= print_r($_GET, true);
$str .= "\n";
file_put_contents(dirname(__FILE__) . '/log.txt', $str, FILE_APPEND);
/* Don't execute PHP internal error handler */
return true;
}
Он получает информацию об ошибке, подготавливает некоторые конкретные сообщения об ошибках, которые зависят от типа ошибки, и помещает все это и дамп $_GET
в файл.
(Конечно, ваш веб-сервер должен иметь возможность создавать / записывать в этот файл)
Затем вы регистрируете этот обработчик:
$old_error_handler = set_error_handler("myErrorHandler");
И, наконец, просто для проверки вы запускаете несколько ошибок:
trigger_error("test of E_USER_ERROR", E_USER_ERROR);
trigger_error("test of E_USER_WARNING", E_USER_WARNING);
trigger_error("test of E_USER_NOTICE", E_USER_NOTICE);
Теперь, при условии, что вы вызываете страницу примерно так: http://tests/temp/temp.php?a=10&test=glop&hello=world
; вы получите журнал ошибок, содержащий это:
$ cat log.txt
<b>My ERROR</b> [256] test of E_USER_ERROR<br />
Fatal error on line 34 in file /home/squale/developpement/tests/temp/temp.php, PHP 5.3.0RC4 (Linux)<br />
Array
(
[a] => 10
[test] => glop
[hello] => world
)
<b>My WARNING</b> [512] test of E_USER_WARNING<br />
Array
(
[a] => 10
[test] => glop
[hello] => world
)
<b>My NOTICE</b> [1024] test of E_USER_NOTICE<br />
Array
(
[a] => 10
[test] => glop
[hello] => world
)
В этом случае это довольно уродливый беспорядок ... Но вы, наверное, видите смысл; теперь, до вас, чтобы развить это, чтобы получить именно то, что вы хотите; -)
Конечно, теперь вам также нужно разработать интерфейс отчетности (удобный, быстрый, удобный и все такое ...); вероятно, это будет самая длинная часть, которую нужно поставить : - (
И, к сожалению, я не знаю ни одного инструмента, который мог бы вам помочь ...
(Может быть, если вы начнете что-то разрабатывать, это может быть выпущено как открытый исходный код? Это, вероятно, окажется полезным для других ;-) Меня могут заинтересовать некоторые проекты, и я уверен, что не один ;-))
Все же, получайте удовольствие!