Ham*_*eza 7 php error-handling logging fatal-error
我如何将此错误记录到文本文件或数据库?
Fatal error: Call to undefined method PROJECTS::ssss()
Run Code Online (Sandbox Code Playgroud)
这是不可能的处理使用自定义错误处理程序致命错误.
最好的解决方案是在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
线.
小智 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)