如何在使用CodeIgniter创建的API中记录变量?

时间:2016-11-17 13:01:51

标签: php codeigniter api web-applications

我正在远程调试由以前的程序员使用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),但只有一个显示,之后没有任何内容!可能导致这种情况发生的任何可能性以及如何跟踪它

2 个答案:

答案 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)