如何在CodeIgniter(PHP)中进行错误记录

uda*_*aya 83 php error-handling logging codeigniter

我想在PHP CodeIgniter中记录错误.如何启用错误记录?

我有一些问题:

  1. 记录错误的所有步骤是什么?
  2. 如何创建错误日志文件?
  3. 如何将错误消息推送到日志文件中(每当发生错误时)?
  4. 你如何通过电子邮件将该错误发送到电子邮件地址?

Key*_*eyo 166

CodeIgniter内置了一些错误记录功能.

  • 使您的/ application/logs文件夹可写
  • /application/config/config.php中设置
    $config['log_threshold'] = 1;
    或使用更高的数字,具体取决于您在日志中需要多少详细信息
  • 使用 log_message('error', 'Some variable did not contain a value.');
  • 要发送电子邮件,您需要扩展核心CI_Exceptions类方法log_exceptions().你可以自己做或者使用.在扩展核心更多信息点击这里

http://www.codeigniter.com/user_guide/general/errors.html

  • 使你的/ application/logs文件夹可写<<<帮助我 (6认同)
  • 现在链接是[http://ellislab.com/codeigniter/user-guide/general/errors.html](http://ellislab.com/codeigniter/user-guide/general/errors.html) (2认同)

Mar*_*ich 24

要简单地在服务器的错误日志中添加一行,请使用PHP的error_log()函数.但是,该方法不会发送电子邮件.

首先,触发错误:

trigger_error("Error message here", E_USER_ERROR);
Run Code Online (Sandbox Code Playgroud)

默认情况下,这将进入服务器的错误日志文件.请参阅Apache 的ErrorLog指令.要设置自己的日志文件:

ini_set('error_log', 'path/to/log/file');
Run Code Online (Sandbox Code Playgroud)

请注意,您选择的日志文件必须已存在且可由服务器进程写入.使文件可写的最简单方法是使服务器用户成为文件的所有者.(服务器用户可能是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);
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅相关的PHP文档.