phpbar.de logo

Mailinglisten-Archive

[php] Eigene Fehlerbehandlung

[php] Eigene Fehlerbehandlung

Sven Eicher phpbar at koalashome.de
Mit Dez 3 11:28:17 CET 2003


Hallo

Zu dem Thema möchte ich noch etwas nachreichen.
Da ich auf meinem Arbeitssystem sowieso das error_reporting auf E_ALL gestellt 
habe und mir alle Meldungen ausgeben lasse, brauch ich hier natürlich keine 
EMail-Mitteilungen.
Also hab ich das ganze so eingebunden:

Die Startdatei mit der entsprechenden Funktion:
--- schnipp --- schnapp --- cut ---
<?php
$_CFG['gEH_empfaenger'] = 'Entwickler<name at example.com>';
$_CFG['gEH_absender'] = 'Entwickler<name at example.com>';

require_once ($_PHPLIB["libdir"].'cfg_getErrorHandler.inc.php');
if ($_CFG['gEH']) {
  ini_set ('error_reporting','E_ALL');
  function getErrorHandler ($errno,$errmsg,$filename,$linenum) { 
    global $_CFG;
    $error = "Zeit: " .date("Y-m-d H:i:s"). "\n"; 
    $error .= "Meldung: " .$errmsg. "\n"; 
    $error .= "Datei: " .$filename. "\n"; 
    $error .= "Zeile: " .$linenum. "\n"; 
    $error .= "Server: " .$_SERVER['SERVER_NAME']. "\n"; 
    mail($_CFG['gEH_empfaenger'], "Skript-Fehler aufgetreten", $error, "From: 
".$_CFG['gEH_absender']); 
  } 
  set_error_handler("getErrorHandler");
} else {
  // wer die Server-Grundeinstellungen nochmal extra anpassen moechte,
  // kann das hiermit tun
  //ini_set ('error_reporting'.'E_ALL & ~E_NOTICE');
} 
?>
--- schnipp --- schnapp --- cut ---

... und die Datei 'cfg_getErrorHandler.inc.php' enthält:
--- schnipp --- schnapp --- cut ---
<?php
$_CFG['gEH'] = true;
?>
--- schnipp --- schnapp --- cut ---

Erläuterung
Mit der Datei 'cfg_getErrorHandler.inc.php' kann bestimmt werden, ob bei 
Fehlern eine EMail versand wird. Da ich vom Produktivserver gerne über Fehler 
informiert werden möchte, steht dort der Wert $_CFG['gEH'] auf "true" und auf 
meinem Arbeitsrechner eben auf "false".
Somit erspare ich mir ein lästiges "immer_dran_denken_den_Wert_zu_ändern" (-;

Den else-Zweig habe ich quasi als weitere optionale Einstellmöglichkeit 
gedacht, falls ich auch mal auf einem Produktivsystem das error_reporting 
anpassen muss.

-- 
Koala


php::bar PHP Wiki   -   Listenarchive