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

2022-08-30 07:29:15

我想要在PHP CodeIgniter中记录错误。如何启用错误日志记录?

我有一些问题:

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

答案 1

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


答案 2

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

首先,触发错误:

trigger_error("Error message here", E_USER_ERROR);

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

ini_set('error_log', 'path/to/log/file');

请注意,您选择的日志文件必须已经存在并且可由服务器进程写入。使文件可写的最简单方法是使服务器用户成为文件的所有者。(服务器用户可能是无名之辈,_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);

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


推荐