我正在远程调试由以前的程序员使用CodeIgniter框架构建的API。我使用其他PHP MVC框架编程,但我从未构建过API(也没有使用过CodeIgniter),并且对变量进行调试总是像 echo , var_dump , print_r ,...或者只使用框架的日志命令。
现在,我没有显示错误并在其上登录的页面(或者我?),我尝试了 log_message , error_log 和 put_file_contents 没有任何运气!它只运行第一个日志命令,但第二个命令不运行!
在我的模型中,我有以下功能:
public function processcontacts($data) {
error_log(json_encode($data), 3, "~/logs/processcontacts_data.txt");
$countryCode = $data["countryCode"];
error_log(json_encode($countryCode), 3, "~/logs/processcontacts_countryCode.txt");
$isContact = array();
$isNotContact = array();
foreach ($data as $key => $value) {
$value->phone = str_replace(" ", "", $value->phone);
$value->name = str_replace(" undefined", "", $value->name);
$value->name = str_replace(" Undefined", "", $value->name);
$query = $this->db->get_where('appusers', array(
'id' => $this->getMyId($value->phone, $countryCode)
)
);
if ($query->num_rows() > 0) {
$row = $query->row();
$value->country = $row->country;
if ($row->photoapproved == 1) {
$value->photo = $row->photo;
}
$value->token = $row->token;
array_push($isContact, $value);
} else {
array_push($isNotContact, $value);
}
}
$returner = array();
$returner["isMember"] = $isContact;
$returner["isNotMember"] = $isNotContact;
return json_encode($returner);
}
我有两个error_log(或put_file_contents),但只有一个显示,之后没有任何内容!可能导致这种情况发生的任何可能性以及如何跟踪它?
答案 0 :(得分:0)
CodeIgniter内置了一些错误记录功能:
使您的/ application / logs文件夹可写
在/application/config/config.php
集合中:
$config['log_threshold'] = 1;
有多种级别的日志记录:
/*
|--------------------------------------------------------------------------
| Error Logging Threshold
|--------------------------------------------------------------------------
|
| You can enable error logging by setting a threshold over zero. The
| threshold determines what gets logged. Threshold options are:
|
| 0 = Disables logging, Error logging TURNED OFF
| 1 = Error Messages (including PHP errors)
| 2 = Debug Messages
| 3 = Informational Messages
| 4 = All Messages
|
| You can also pass an array with threshold levels to show individual error types
|
| array(2) = Debug Messages, without Error Messages
|
| For a live site you'll usually only enable Errors (1) to be logged otherwise
| your log files will fill up very fast.
|
*/
$config['log_threshold'] = 4;
有关详情,请参阅CodeIgniter Error Handling
<强>已更新强>
配置设置中的日志文件名需要尾随&#34; /&#34; 确保Web服务器进程具有可写入的访问权限 。目录
希望这有帮助!
答案 1 :(得分:0)
事实证明我没有配置正确的php.ini文件!需要修改的是“../apache2/ ..”中的一个
但是,我确实发现 Postman 是调试远程API的绝佳工具,所以我想在此处指出以备注意。 (感谢@ xpuc7o)