Dan*_* F. 3 codeigniter codeigniter-2
我正在寻找一种方法来捕获所有数据库错误(如果发生的话),并发送错误报告我的电子邮件.对于常规的PHP错误,我扩展了CI_Exceptions类并添加了我的电子邮件发送代码以及日志记录.但数据库错误不会发生CI_Exceptions,而是直接记录CI_DB_Driver->query(),我不想修改System文件夹中的任何文件.
此外,我不想在应用程序的每个查询周围编写日志记录代码.
我很想扩展CI_Exceptions show_error方法来捕获使用'error_db'模板传递的任何错误,而不是通过db驱动程序搜索.
由于您已经使用电子邮件代码扩展了CI_Exceptions,这似乎是最佳做法.
function show_error($heading, $message, $template = 'error_general', $status_code = 500)
{
set_status_header($status_code);
$message = '<p>'.implode('</p><p>', ( ! is_array($message)) ? array($message) : $message).'</p>';
if ($template == 'error_db')
{
// do email send here with $message
}
if (ob_get_level() > $this->ob_level + 1)
{
ob_end_flush();
}
ob_start();
include(APPPATH.'errors/'.$template.'.php');
$buffer = ob_get_contents();
ob_end_clean();
return $buffer;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2786 次 |
| 最近记录: |