login  Naam:   Wachtwoord: 
Registreer je!
 Scripts:

Scripts > PHP > Handige scripts > Error naar log file

Error naar log file

Auteur: redsd - 11 augustus 2008 - 17:15 - Gekeurd door: marten - Hits: 3501 - Aantal punten: (0 stemmen)




Errors kunnen op verschillende manieren bijgehouden worden, wanneer je een grote website draait, kan het vaker voorkomen dat er fouten zijn dan bij een kleine website.

Omdat je zelf fouten over het hoofd kunt zien, kan je met deze functie een errorlog bijhouden. zo kunt u precies zien over bezoekers te maken hebben gekregen met errors of dat er ergens variable niet goed staan.

Deze functie kan in principe overal geplaatst worden en word aangeroepen door deze regels in u hoofd pagina(ergens bovenaan) te plaatsen:
$old_error_handler=set_error_handler("ErrorHandler2");

Vergeet ook niet de map waar je error log in komt te chmodden.

Code:
  1. De functie wordt aan geroepen door deze regel boven in het hoofdbestand te plaatsen:
  2. $old_error_handler=set_error_handler("ErrorHandler2");
  3.  
  4. Vergeet ook niet de map waar je error log in komt te chmodden.

  1. <?
  2. function ErrorHandler2($errno, $errstr, $errfile, $errline)
  3. {
  4. //debug=1 laat alle fouten zien, ook de gene die geen invloed hebben op de website
  5. //debug=0 laat alleen de belangrijkste fouten zien
  6. $debug=0;
  7. //Email=0 bij een ernstige error wordt er geen mail verstuurd naar het opgegeven email adress
  8. //Email=1 Er wordt een mail gestuurd wanneer er een ernstige error optreed
  9. $email=0;
  10. $mailaddress="your@email.com";
  11. //$file geeft het path en het bestandsnaam aan waar de log bewaart moet worden
  12. //letop het path begint bij de root van je webaccount, dus niet in je public folder.
  13. $file="/logs/website_error.log";
  14.  
  15. //Hier maken we een lijst met alle verschillende errors
  16. $arErrortype=array (E_ERROR => "[ERROR] ",
  17. E_WARNING => "[WARNING] ",
  18. E_PARSE => "[PARSE ERROR] ",
  19. E_NOTICE => "[NOTICE] ",
  20. E_CORE_ERROR => "[CORE ERROR] ",
  21. E_CORE_WARNING => "[CORE WARNING] ",
  22. E_COMPILE_ERROR => "[COMPILE ERROR] ",
  23. E_COMPILE_WARNING => "[COMPILE WARNING]",
  24. E_USER_ERROR => "[USER ERROR] ",
  25. E_USER_WARNING => "[USER WARNING] ",
  26. E_USER_NOTICE => "[DEBUG] ",
  27. E_STRICT => "[RUNTIME NOTICE] ");
  28.  
  29. //We hebben een datum en tijd nodig om te weten wanneer het gebeurt was
  30. $dt=date("Y-m-d H:i:s");
  31.  
  32.  
  33. if($debug==1)
  34. {
  35. $arShow=array ( E_ERROR,
  36. E_WARNING,
  37. E_PARSE,
  38. E_NOTICE,
  39. E_CORE_ERROR,
  40. E_CORE_WARNING,
  41. E_COMPILE_ERROR,
  42. E_COMPILE_WARNING,
  43. E_USER_ERROR,
  44. E_USER_WARNING,
  45. E_USER_NOTICE,
  46. E_STRICT);
  47. }else{
  48. $arShow=array ( E_ERROR,
  49. E_PARSE,
  50. E_USER_ERROR,
  51. E_USER_WARNING);
  52. }
  53.  
  54. //hier checken of de error voorkomt met de eisen(zie $debug)
  55. if(in_array($errno,$arShow))
  56. {
  57. $strError="{$arErrortype[$errno]} {$dt} - {$errstr} | Line: {$errline} in file {$errfile}\n";
  58.  
  59. //als de error serieus is kan ook gemailed worden
  60. if ($errno==E_USER_ERROR && $email==1) {
  61.  
  62. mail($mailaddress,"Critical Error was found",$strError);
  63. }
  64. }
  65.  
  66. //schijf de error naar de log
  67. if(!empty($strError))
  68. {
  69. error_log($strError,3,$file);
  70. }
  71.  
  72. }
  73. ?>
Download code! Download code (.txt)

 Stemmen
Niet ingelogd.

 Reacties
Post een reactie
Lees de reacties (2)
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.042s