|  | Posted by Kim Andrι Akerψ on 08/20/07 11:19 
Pugi! wrote:
 > I use the function error_log for logging like this
 > if (!error_log($logmsg, 3, $dest)) {
 >   throw new Exception('Failed to write to log');
 > }
 >
 > and this inside an try catch block. In the catch I send an email.
 > For testing purposes I disabled write for apache user on the
 > destination directory.
 > I got the following message
 > Warning: error_log(path and logfile) [function.error-log]: failed to
 > open stream: Permission denied ...
 > Why do I get this message. I test for it, it is inside a try catch
 > block ...
 >
 > It is still in development. On a production server I can do
 > error_reporting(E_ERROR) or in php.ini set display_errors=off. But why
 > a warning: I take care of it. Or is this normal ?
 >
 > JM
 
 In PHP 5.0 or later, you can define the E_WARNING error type to be
 handled by your own functions, like this:
 
 set_error_handler("my_warning_handler", E_WARNING);
 
 function my_warning_handler($errno, $errstr) {
 // do something
 }
 
 http://php.net/set_error_handler
 
 In PHP 4.x, you can do it the same way, but instead filter out the
 E_WARNING to your own, and pass the others out to the normal error
 handler (as the manual says, "[if] the function returns FALSE then the
 normal error handler continues"), like this:
 
 set_error_handler("my_warning_handler");
 
 function my_warning_handler($errno, $errstr) {
 switch ($errno) {
 case E_WARNING:
 // do something
 return true;
 break;
 default:
 return false;
 break;
 }
 }
 
 --
 Kim AndrΓ© AkerΓΈ
 - kimandre@NOSPAMbetadome.com
 (remove NOSPAM to contact me directly)
 [Back to original message] |