基类中的日志函数的正确写法

场景

. 有些情况需要写日志,但是没有重要到写到数据库的程度  这时候
   就需要写入文件了

解决

    /**
     * 日志
     * @param $response
     * @return string
     */
    protected function log($response)
    {
        // 組裝要寫日志
        $info_log = json_encode($response, JSON_UNESCAPED_UNICODE);

        // 檢查日志文件是否存在
        $dir = RUNTIME_PATH . date('Ymd') . '/';
        if (!file_exists($dir) || !is_dir($dir)) {
            @mkdir($dir, 0755, true);
        }

        // 日志文件名
        $log_name = $this->genLogName();
        $destination = $dir . $log_name . '.log';

        // 寫入
        file_put_contents(
            $destination,
            '[' . date('Y-m-d H:i:s') . ']  ' . $info_log . PHP_EOL,
            FILE_APPEND
        );
    }

    /**
     * 生成日志名字
     * @return mixed
     */
    protected function genLogName()
    {
        // 回溯调用者的文件的名字
        $file_name_invoking = debug_backtrace(DEBUG_BACKTRACE_PROVIDE_OBJECT, 2)[1]['file'];
        $file_name_invoking = trim($file_name_invoking, '.class.php');
        $list_name = explode('/', $file_name_invoking);

        return end($list_name);
    }

猜你喜欢

转载自blog.csdn.net/cominglately/article/details/80706887