How to receive email every time a PHP error occurs on our website

I understand this may be a ridiculous question, but does anyone know how I can set up our website to send an email to our administrator every time a PHP error is sent to our website?

+4
source share
3 answers

Use an error handler. For example, from: http://net.tutsplus.com/tutorials/php/quick-tip-email-error-logs-to-yourself-with-php/

// Our custom error handler function nettuts_error_handler($number, $message, $file, $line, $vars) { $email = " <p>An error ($number) occurred on line <strong>$line</strong> and in the <strong>file: $file.</strong> <p> $message </p>"; $email .= "<pre>" . print_r($vars, 1) . "</pre>"; $headers = 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; // Email the error to someone... error_log($email, 1, ' you@youremail.com ', $headers); // Make sure that you decide how to respond to errors (on the user side) // Either echo an error message, or kill the entire project. Up to you... // The code below ensures that we only "die" if the error was more than // just a NOTICE. if ( ($number !== E_NOTICE) && ($number < 2048) ) { die("There was an error. Please try again later."); } } // We should use our custom function to handle errors. set_error_handler('nettuts_error_handler'); 
+2
source

In theory, when you know something might break, you should go with a try / catch construct like this and add a simple mail () command [but setting up mail () is another big topic, but skip this in detail] .

 try { // your actions that may fail } catch (Exception $e) { // the catch block happens only when your above stuff fails // when exactly things fail can be read here // http://php.net/manual/en/language.exceptions.php // getMessage() really get the human-readable error content $message = $e->getMessage(); mail(' caffeinated@example.com ', 'My Subject', $message); } 
+1
source

I think it depends on how complicated you want, but https://github.com/Seldaek/monolog should be able to do what you want.

It could be too much.

0
source

Source: https://habr.com/ru/post/1488321/


All Articles