我想通过电子邮件接收错误日志。例如,如果出现Warning-level错误消息,我希望收到有关它的电子邮件。
如何让它在CodeIgniter中正常工作?
发布于 2008-11-04 02:40:09
您可以扩展Exception核心类来执行此操作。
可能必须调整对CI的电子邮件类的引用,不确定是否可以从这样的库中实例化它。我自己没有使用CI的email类,我一直在使用Swift Mailer库。但这应该会让你走上正确的道路。
创建一个应用程序文件,并将其放入/ MY_Exceptions.php /libraries/(对于CI 2,则放在/application/core/中)
class MY_Exceptions extends CI_Exceptions {
function __construct()
{
parent::__construct();
}
function log_exception($severity, $message, $filepath, $line)
{
if (ENVIRONMENT === 'production') {
$ci =& get_instance();
$ci->load->library('email');
$ci->email->from('your@example.com', 'Your Name');
$ci->email->to('someone@example.com');
$ci->email->cc('another@another-example.com');
$ci->email->bcc('them@their-example.com');
$ci->email->subject('error');
$ci->email->message('Severity: '.$severity.' --> '.$message. ' '.$filepath.' '.$line);
$ci->email->send();
}
parent::log_exception($severity, $message, $filepath, $line);
}
}发布于 2010-08-01 01:23:10
解决方案中遗漏的一件事是,您必须获取CodeIgniters超级对象来加载和使用电子邮件库(或任何CodeIgniters、其他库和本机函数)。
$CI =& get_instance();完成后,您可以使用$CI而不是$this来加载电子邮件库并设置所有参数。有关更多信息,请参阅 under and Library部分。
发布于 2008-11-04 02:43:17
哦,另一个选择是获得一个支持电子邮件摘要的logrotation应用程序。不确定你在什么平台上,但是你可以让一些东西监控error_log文件并给你发送更新,可能不是那么整洁,而且你肯定会被限制在error_log中的信息。(error_log是Apache,CI在system中有/logs/文件夹,IIS有Windows事件)
https://stackoverflow.com/questions/260597
复制相似问题