Error naar log file
Auteur: redsd - 11 augustus 2008 - 17:15 - Gekeurd door: marten - Hits: 3591 - 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: |
De functie wordt aan geroepen door deze regel boven in het hoofdbestand te plaatsen:
$old_error_handler=set_error_handler("ErrorHandler2");
Vergeet ook niet de map waar je error log in komt te chmodden.
De functie wordt aan geroepen door deze regel boven in het hoofdbestand te plaatsen:
$old_error_handler=set_error_handler("ErrorHandler2");
Vergeet ook niet de map waar je error log in komt te chmodden.
<?
function ErrorHandler2($errno, $errstr, $errfile, $errline)
{
//debug=1 laat alle fouten zien, ook de gene die geen invloed hebben op de website
//debug=0 laat alleen de belangrijkste fouten zien
$debug=0;
//Email=0 bij een ernstige error wordt er geen mail verstuurd naar het opgegeven email adress
//Email=1 Er wordt een mail gestuurd wanneer er een ernstige error optreed
$email=0;
$mailaddress="your@email.com";
//$file geeft het path en het bestandsnaam aan waar de log bewaart moet worden
//letop het path begint bij de root van je webaccount, dus niet in je public folder.
$file="/logs/website_error.log";
//Hier maken we een lijst met alle verschillende errors
$arErrortype=array (E_ERROR => "[ERROR] ",
E_WARNING => "[WARNING] ",
E_PARSE => "[PARSE ERROR] ",
E_NOTICE => "[NOTICE] ",
E_CORE_ERROR => "[CORE ERROR] ",
E_CORE_WARNING => "[CORE WARNING] ",
E_COMPILE_ERROR => "[COMPILE ERROR] ",
E_COMPILE_WARNING => "[COMPILE WARNING]",
E_USER_ERROR => "[USER ERROR] ",
E_USER_WARNING => "[USER WARNING] ",
E_USER_NOTICE => "[DEBUG] ",
E_STRICT => "[RUNTIME NOTICE] ");
//We hebben een datum en tijd nodig om te weten wanneer het gebeurt was
$dt=date("Y-m-d H:i:s");
if($debug==1)
{
$arShow=array ( E_ERROR,
E_WARNING,
E_PARSE,
E_NOTICE,
E_CORE_ERROR,
E_CORE_WARNING,
E_COMPILE_ERROR,
E_COMPILE_WARNING,
E_USER_ERROR,
E_USER_WARNING,
E_USER_NOTICE,
E_STRICT);
}else{
$arShow=array ( E_ERROR,
E_PARSE,
E_USER_ERROR,
E_USER_WARNING);
}
//hier checken of de error voorkomt met de eisen(zie $debug)
if(in_array($errno,$arShow))
{
$strError="{$arErrortype[$errno]} {$dt} - {$errstr} | Line: {$errline} in file {$errfile}\n";
//als de error serieus is kan ook gemailed worden
if ($errno==E_USER_ERROR && $email==1) {
mail($mailaddress,"Critical Error was found",$strError);
}
}
//schijf de error naar de log
if(!empty($strError))
{
error_log($strError,3,$file);
}
}
?>
<? function ErrorHandler2($errno, $errstr, $errfile, $errline) { //debug=1 laat alle fouten zien, ook de gene die geen invloed hebben op de website //debug=0 laat alleen de belangrijkste fouten zien $debug=0; //Email=0 bij een ernstige error wordt er geen mail verstuurd naar het opgegeven email adress //Email=1 Er wordt een mail gestuurd wanneer er een ernstige error optreed $email=0; $mailaddress="your@email.com"; //$file geeft het path en het bestandsnaam aan waar de log bewaart moet worden //letop het path begint bij de root van je webaccount, dus niet in je public folder. $file="/logs/website_error.log"; //Hier maken we een lijst met alle verschillende errors $arErrortype=array (E_ERROR => "[ERROR] ", E_WARNING => "[WARNING] ", E_PARSE => "[PARSE ERROR] ", E_NOTICE => "[NOTICE] ", E_CORE_ERROR => "[CORE ERROR] ", E_CORE_WARNING => "[CORE WARNING] ", E_COMPILE_ERROR => "[COMPILE ERROR] ", E_COMPILE_WARNING => "[COMPILE WARNING]", E_USER_ERROR => "[USER ERROR] ", E_USER_WARNING => "[USER WARNING] ", E_USER_NOTICE => "[DEBUG] ", E_STRICT => "[RUNTIME NOTICE] "); //We hebben een datum en tijd nodig om te weten wanneer het gebeurt was if($debug==1) { E_WARNING, E_PARSE, E_NOTICE, E_CORE_ERROR, E_CORE_WARNING, E_COMPILE_ERROR, E_COMPILE_WARNING, E_USER_ERROR, E_USER_WARNING, E_USER_NOTICE, E_STRICT); }else{ E_PARSE, E_USER_ERROR, E_USER_WARNING); } //hier checken of de error voorkomt met de eisen(zie $debug) { $strError="{$arErrortype[$errno]} {$dt} - {$errstr} | Line: {$errline} in file {$errfile}\n"; //als de error serieus is kan ook gemailed worden if ($errno==E_USER_ERROR && $email==1) { mail($mailaddress,"Critical Error was found",$strError); } } //schijf de error naar de log { } } ?>
Download code (.txt)
|
|
Stemmen |
Niet ingelogd. |
|