如何在CodeIgniter中进行错误日志logging(PHP)
我想在PHP CodeIgniter中logging错误。 如何启用错误日志logging?
我有一些疑问:
- logging错误的所有步骤是什么?
- 如何创build错误日志文件?
- 如何将错误消息推送到日志文件(每当发生错误)?
- 你如何通过电子邮件发送错误到一个电子邮件地址?
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()
。 你可以自己做这个或者使用这个 。 更多信息在这里扩展核心
要简单地在服务器的错误日志中放一行,使用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);