【发布时间】:2011-03-13 16:40:24
【问题描述】:
我想在 PHP CodeIgniter 中记录错误。如何启用错误日志记录?
我有一些问题:
- 记录错误的所有步骤是什么?
- 如何创建错误日志文件?
- 如何将错误消息推送到日志文件中(无论何时发生错误)?
- 如何通过电子邮件将该错误发送到电子邮件地址?
【问题讨论】:
标签: php codeigniter logging error-handling
我想在 PHP CodeIgniter 中记录错误。如何启用错误日志记录?
我有一些问题:
【问题讨论】:
标签: php codeigniter logging error-handling
CodeIgniter 内置了一些错误记录功能。
【讨论】:
要简单地在服务器的错误日志中添加一行,请使用 PHP 的 error_log() 函数。但是,该方法不会发送电子邮件。
首先,触发错误:
trigger_error("Error message here", E_USER_ERROR);
默认情况下,这将进入服务器的错误日志文件。请参阅 Apache 的 ErrorLog directive。设置您自己的日志文件:
ini_set('error_log', 'path/to/log/file');
请注意,您选择的日志文件必须已经存在并且可由服务器进程写入。使文件可写的最简单方法是使服务器用户成为文件的所有者。 (服务器用户可能是nobody、_www、apache 或其他,取决于您的操作系统发行版。)
要通过电子邮件发送错误,您需要设置自定义错误处理程序:
function mail_error($errno, $errstr, $errfile, $errline) {
$message = "[Error $errno] $errstr - Error on line $errline in file $errfile";
error_log($message); // writes the error to the log file
mail('you@yourdomain.com', 'I have an error', $message);
}
set_error_handler('mail_error', E_ALL^E_NOTICE);
请参阅relevant PHP documentation 了解更多信息。
【讨论】:
还要确保您已允许 codeigniter 在配置文件中记录您想要的消息类型。
即$config['log_threshold'] = [log_level ranges 0-4];
【讨论】:
In config.php add or edit the following lines to this:
------------------------------------------------------
$config['log_threshold'] = 4; // (1/2/3)
$config['log_path'] = '/home/path/to/application/logs/';
Run this command in the terminal:
----------------------------------
sudo chmod -R 777 /home/path/to/application/logs/
【讨论】:
关于问题第 4 部分的更多信息 您如何将该错误通过电子邮件发送到电子邮件地址? error_log 函数也有电子邮件目的地。 http://php.net/manual/en/function.error-log.php
啊哈,我在这里找到了一个显示用法的示例。 Send errors message via email using error_log()
error_log($this->_errorMsg, 1, ADMIN_MAIL, "Content-Type: text/html; charset=utf8\r\nFrom: ".MAIL_ERR_FROM."\r\nTo: ".ADMIN_MAIL);
【讨论】: