Je ne fais pas de n'importe quel outil qui le fera automatiquement pour vous; mais il n'est pas difficile à développer, je pense ... Pourtant, je l'admets, il faudra un certain temps :-(
Juste pour jeter quelques notes, la meilleure solution qui me vient à l'esprit pour connecter le erreurs est:
- enregistrer votre propre gestionnaire d'erreur avec
set_error_handler
Code
- la fonction, de sorte qu'il enregistre les erreurs + GET/données POST
- peut-être que cela pourrait/aurait/devrait être fait dans une sorte de base de données, ou fichier structuré (une base de données SQLite, peut-être: li ght, rapide, facile à utiliser, ne dépend pas d'un serveur de base de données externe, ...), et pas seulement les fichiers simples; serait plus facile à traiter plus tard.
- développer l'application de "reporting" ...
- C'est la chose qui va prendre un certain temps, bien que, comme vous le dites ...
Utilisation de la exemple qui est donné sur la page de manuel, quelque chose comme cela ferait probablement: d'abord, déclarez votre fonction de gestion des erreurs:
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;
}
Il obtient des informations de l'erreur, prépare des messages d'erreur spécifiques qui dépendent du type d'erreur, et met tout cela et un vidage de $_GET
dans un fichier.
(Bien sûr, votre serveur Web doit être en mesure de créer/écrire dans ce fichier)
Ensuite, vous enregistrez ce gestionnaire:
$old_error_handler = set_error_handler("myErrorHandler");
Et enfin, juste pour tester , vous déclenchez des erreurs:
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);
Maintenant, à condition d'appeler la page avec quelque chose comme ceci: http://tests/temp/temp.php?a=10&test=glop&hello=world
; vous obtiendrez un journal d'erreur contenant ceci:
$ 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
)
Dans ce cas, il est tout à fait un désordre laid ... Mais vous voyez sans doute le point; maintenant, à vous de construire sur cela pour obtenir exactement ce que vous voulez ;-)
Bien sûr, maintenant, il faut aussi développer l'interface de reporting (conviviale, rapide, utilisable, et tout cela. ..); ce sera probablement la plus longue partie de mettre en place :-(
Et, malheureusement, je ne sais pas un outil qui pourrait vous aider ...
(Peut-être, si vous commencez quelque chose développer, il pourrait être libéré comme open source? Cela serait probablement utile à d'autres ;-) Je pourrais être intéressé par certains projets, et je suis sûr que je ne suis pas le ;-))
Toujours, amusez-vous!
Je serais ravi de savoir si quelque chose comme ça existe ... même si je serais un peu déçu car j'ai déjà passé de nombreuses heures à développer le mien ... – Josh