lixx: Meldungen aus set_error_handler()

Beitrag lesen

Hi!

Ich habe einen errorHandler erstellt...

function errorHandler($errno, $errmsg, $filename, $linenum) {

// timestamp for the error entry
 $date = date('Y-m-d H:i:s (T)');

// define an assoc array of error string
 $errortype = Array(
  E_ERROR    => 'Error',
  E_WARNING   => 'Warning',
  E_PARSE    => 'Parsing 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  => 'User Notice',
//  E_STRICT   => 'Runtime Notice',  // Use at PHP 5
//  E_RECOVERABLE_ERRROR=> 'Catchable Fatal Error' // Use at PHP 5
 );

$err  = $date."\t";
 $err .= $_SERVER['REMOTE_ADDR']."\t";
 $err .= $errno."\t";
 $err .= $errortype[$errno]."\t";
 $err .= $errmsg."\t";
 $err .= $filename."\t";
 $err .= $linenum."\n";

// save to the error log
 error_log($err, 3, 'errors.log');

trigger_error($errmsg);
}

set_error_handler('errorHandler');

und zum Testen eine nicht definierte Konstante ausgeben lassen ...

echo SDF;

Soweit so gut, funktioniert auch alles ganz schön. Nur wenn ich einen error handler setze, wird mir zwar ein Eintrag ins log gemacht, aber nicht mehr am Bildschirm angezeigt. Dafür verwende ich jetzt trigger_error(). Aber der gibt mir nicht das gleiche aus, wie wenn kein error handler gesetzt wird.

Dann kommt noch hinzu (vielleicht ist das wichtig), dass der error handler sich in einer datei befindet, die inkludiert wird, danach wird eine Klasse als datei inkludiert und erzeugt. Und in dieser Datei befindet sich dann der Fehler.

Normale Fehlerausgabe (ohne error handler):
Notice: Use of undefined constant SDF - assumed 'SDF' in /path/to/class.file.inc on line 19

eingehende parameter:
8
Use of undefined constant SDF - assumed 'SDF'
/path/to/class.file.inc
19

meldung aus trigger_error($errmsg.'<br>'.$filename.'--END--');
Use of undefined constant SDF - assumed 'SDF'
/path/to/class.file.inc--END-- in /path/to/errorh.inc on line 53

Jetzt die Frage: woher kommt das Anhängsel "in /path/to/errorh.inc on line 53" nach dem "--END--"? Kann man das verhindern?

lg lixx