PHP:如何记录致命错误?

Ham*_*eza 7 php error-handling logging fatal-error

我如何将此错误记录到文本文件或数据库?

Fatal error: Call to undefined method PROJECTS::ssss()
Run Code Online (Sandbox Code Playgroud)

Thi*_*ter 9

这是不可能的处理使用自定义错误处理程序致命错误.

最好的解决方案是在php.ini中启用错误日志记录(例如syslog),然后使用logcheck/logsentry等工具接收有关异常syslog条目的定期电子邮件.
而不是syslog PHP也可以将错误记录到文件中 - 只需查看php.ini的错误记录选项即可.

log_errors = On
error_log = syslog
error_log = /path/to/some/folder/phperrors.log
Run Code Online (Sandbox Code Playgroud)

显然你只想使用其中一条error_log线.

  • `<?php function cleanup(){ print_r(error_get_last()); }``register_shutdown_function("cleanup");asdfasdf();` (4认同)

小智 9

有一种方法可以处理您的任务,实际上您可以在FATAL错误上设置自定义错误处理程序.

你可以这样做:

ini_set('error_reporting', E_ERROR);
register_shutdown_function("fatal_handler");
function fatal_handler() {
    $error = error_get_last();
    //Do whatever you want with this error, for example:
    YourDBApplicationLayer::writeFatal($error);
}
Run Code Online (Sandbox Code Playgroud)


小智 6

现在在 PHP7 中可以捕获致命错误:

try {

    ggggg(); // <---- make a fatal error

} catch(Throwable $e) {

    var_dump($e);

}
Run Code Online (Sandbox Code Playgroud)