error_handling.php

Date
2005-06-14 (Tue)
Category
Tech

ある hosting site で、例として載っていた php tips。もし、レンタルサーバーで、php.ini をいじることが出来なくて、でも trigger_error を使ったデバッグがしたい時にとても有効。

使い方は、このファイルを、デバッグしたいファイルの先頭で include すればいいだけ。標準では errors.csv というファイルが、実行中ファイルと同じフォルダに出来ます。まぁ、本当はその辺もちゃんと制御できたらいいんでしょうけど、trigger_error デバッグできる人なら、このソースをいじって、直せると思います。

以下 code 中、back slash が円マーク変換されている可能性もありますが、その辺も読み替えて下さいね。

error_handling.php


error_reporting(0);
$old_error_handler = set_error_handler("userErrorHandler");
function userErrorHandler ($errno, $errmsg, $filename, $linenum, $vars)
{
$time=date("d M Y H:i:s");
// Get the error type from the error number
$errortype = array
(
1 => "Error",
2 => "Warning",
4 => "Parsing Error",
8 => "Notice",
16=> "Core Error",
32=> "Core Warning",
64=> "Compile Error",
128=> "Compile Warning",
256=> "User Error",
512=> "User Warning",
1024 => "User Notice"
);
$errlevel=$errortype[$errno];
//Write error to log file (CSV format)
$errfile=fopen("errors.csv","a");
fputs($errfile,"¥"$time¥",¥"$filename: $linenum¥",¥"($errlevel) $errmsg¥"¥r¥n");
fclose($errfile);
//Terminate script if fatal error
if( ($errno!=2) && ($errno!=8) && ($errno!=32) && ($errno!=128) && ($errno!=256) && ($errno!=512) && ($errno!=1024) ) {
die("A fatal error has occured. Script execution has been aborted.¥n");
}
}
?>

Comment:0

Comment Form

Remember Me?


Trackback:0

TrackBack URL for this entry
http://blogs.grf-design.com/mt/mt-tb.cgi/86
Listed below are links to weblogs that reference
error_handling.php from The Croton

Return to Page Top