[PHP-users 11810] set_error_handler を用いたエラー処理について

Togi Masaaki php-users@php.gr.jp
2002年11月26日 20:51:08 +0900


土岐と申します。
青マンモス本(PHP4徹底攻略 実戦編)のエラー処理を参考にset_error_handlerを用い 
てエラーを捕捉してログに書き出すプログラムを作成しました。下のようになりま 
す。全てのエラーを捕捉してログに書き出すようにしたいのですが、どうも捕捉でき 
るエラーと出来ないエラーがあるみたいです。
例えば、 $a = 1 / 0; とか fopenで存在しないファイルを指定したときは、ちゃ 
んとログに書き出されるのですが、わざと、 $a = ""(セミコロンを書かない) と 
いうことをやってみたり、require_onceで存在しないファイルを指定してみたりして 
もログには書き出されずエラーが画面に表示されます。
ちなみにset_error_handlerを使うと標準のエラー処理をバイパスすると書いてあった 
のでphp.iniは変更していません。
これは何か設定が悪いのでしょうか?
何かご教授頂ければ幸いです。
ちなみにphp.iniのエラー関係の設定はこのようになっております。
------------------------------------
display_errors on
display_startup_errors off
error_append_string no value
error_log no value
error_prepend_string no value
error_reporting on
html_errors on
log_errors off
track_errors	off off
xmlrpc_error_number 0
xmlrpc_errors off
---------------------------------
---------------------
PHP 4.2.1
Apache 1.3.26
Ret Hat Linux 7.2
---------------------
---------------------------------------------------
<?
	//エラーハンドラ関数
	function userErrorHandler($errno,$errmsg,$filename,$linenum){
		//エラー発生時間
		$time = date("Y-m-d H:i:s");
		//ログ出力用エラーを生成
		$err = "\"";
		$err .= $time . "\",\"";
		$err .= $errno . "\",\"";
		$err .= $errmsg . "\",\"";
		$err .= $filename . "\",\"";
		$err .= $linenum . "\"";
		$err .= "\n";
		//ログに保存
		error_log($err,3,"/log/error.log");
	}
	// エラーハンドラ関数を設定
	set_error_handler("userErrorHandler");
?>
--------------------------------------------------
よろしくお願いします。
----------------------------
 土岐 正明 (Togi, Masaaki)
 E-mail: matogi@rmail.plala.or.jp
---------------------------- 

AltStyle によって変換されたページ (->オリジナル) /