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

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

我有一些疑问:

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

CodeIgniter有一些内置的错误日志loggingfunction。

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

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

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

首先,触发一个错误:

 trigger_error("Error message here", E_USER_ERROR); 

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

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

请注意,您select的日志文件必须已经存在,并且可以由服务器进程写入。 使文件可写的最简单方法是使服务器用户成为文件的所有者。 (服务器用户可能是nobody,_www,apache或其他,这取决于您的操作系统分配。)

要通过电子邮件发送错误,您需要设置自定义error handling程序:

 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文档 。

另外请确保您已允许codeigniter在configuration文件中logging所需的消息types。

$config['log_threshold'] = [log_level ranges 0-4];

更多关于问题第4部分的问题如何通过电子邮件将错误发​​送到电子邮件地址? error_log函数也有电子邮件目的地。 http://php.net/manual/en/function.error-log.php

Agha,在这里我find了一个显示使用情况的例子。 通过电子邮件发送错误消息使用error_log()

 error_log($this->_errorMsg, 1, ADMIN_MAIL, "Content-Type: text/html; charset=utf8\r\nFrom: ".MAIL_ERR_FROM."\r\nTo: ".ADMIN_MAIL);