Is it possible to log stacktraces for php warnings? Or catch a warning and error_log() it?
There's some code causing warnings in my error log, but it's impossible to know what's causing these warnings without knowing the stack trace.
Is it possible to log stacktraces for php warnings? Or catch a warning and error_log() it?
There's some code causing warnings in my error log, but it's impossible to know what's causing these warnings without knowing the stack trace.
Here you go:
class WarningWithStacktrace extends ErrorException {}
set_error_handler(function($severity, $message, $file, $line) {
if ((error_reporting() & $severity)) {
if ($severity & (E_WARNING | E_NOTICE | E_USER_WARNING | E_USER_NOTICE)) {
$ex = new WarningWithStacktrace($message, 0, $severity, $file, $line);
echo "\n" . $ex . "\n\n";
return true;
} else {
throw new ErrorException($message, 0, $severity, $file, $line);
}
}
});
Errors/exceptions are thrown as usual, notices/warnings are printed only.
PS: Strict and other warning levels are not addressed, modify the code if needed...