zoukankan      html  css  js  c++  java
  • 封装Json+日志

    /**
     * 输出json
     * @param $msg
     * @param int $errno
     */
    public function printOutError($msg = '操作失败', $errno = 10099)
    {
        $result = [
            'msg'   => $msg,
            'errno' => $errno
        ];
        $param  = $_POST ?: $_GET;
        setlog($param, $result, CONTROLLER_NAME . '/' . ACTION_NAME, C('DB_NAME') . '_error.log');
        $this->setErr($errno, $msg);
        $this->Send();
    }
    
    /**
     * 输出json
     * @param $msg
     * @param int $errno
     */
    public function E($msg = '操作失败', $errno = 10099)
    {
        $result = [
            'msg'   => $msg,
            'errno' => $errno
        ];
        $param  = $_POST ?: $_GET;
        setlog($param, $result, CONTROLLER_NAME . '/' . ACTION_NAME, C('DB_NAME') . '_error.log');
        $this->setErr($errno, $msg);
        $this->Send();
    }
    
    
    /**
     * 输出json
     * @param array $out_data
     * @param string $msg
     * @param bool $force_out 强制展示结果
     */
    public function printOutSuccess($out_data = [], $msg = '操作成功', $force_out = false)
    {
        $result = [
            'msg'  => $msg,
            'data' => $out_data
        ];
        $param  = $_POST ?: $_GET;
        setlog($param, $result, CONTROLLER_NAME . '/' . ACTION_NAME, C('DB_NAME') . '_success.log');
        $this->setErr(0, $msg);
        if ($out_data || $force_out) {
            $this->setAttr('data', $out_data !== null ? $out_data : []); // null的时候返回空
        }
        $this->Send();
    }
    
    /**
     * 输出json
     * @param array $out_data
     * @param string $msg
     * @param bool $force_out 强制展示结果
     */
    public function S($out_data = [], $msg = '操作成功', $force_out = false)
    {
        $result = [
            'msg'  => $msg,
            'data' => $out_data
        ];
        $param  = $_POST ?: $_GET;
        setlog($param, $result, CONTROLLER_NAME . '/' . ACTION_NAME, C('DB_NAME') . '_success.log');
        $this->setErr(0, $msg);
        if ($out_data || $force_out) {
            $this->setAttr('data', $out_data !== null ? $out_data : []); // null的时候返回空
        }
        $this->Send();
    }
    
    // 全局通用日志工具
    function setlog($param = [],$result = [],$name='',$filename = 'm.log',$path = '/tmp/log/'){
        // 没有目录则创建目录
        if (!mkdir($path, 0777, true) && !is_dir($path)) {
            throw new RuntimeException(sprintf('目录 "%s" 创建失败', $path));
        } // 目录,权限,递归
    
        if ($result && $param) {
            $arr = array(
                'param'     =>      $param,
                'result'    =>      $result,
                'name'      =>      $name,
                'time'      =>      date('Y-m-d H:i:s')
            );
        } else {
            $arr = array(
                'content'     =>    $param ?:$result,
                'name'      =>      $name,
                'time'      =>      date('Y-m-d H:i:s')
            );
        }
    
        file_put_contents($path.$filename,var_export($arr,true).PHP_EOL,FILE_APPEND);
    }
    
    

    可以有效的记录,每个接口下的错误日志,参数与返回数据。

  • 相关阅读:
    CURL POST提交json类型字符串数据和伪造IP和来源
    windows下nginx的配置
    常用JS兼容问题工具
    无限级分类--Array写法
    JS获取对象指定属性在样式中的信息
    解决IE和Firefox获取来源网址Referer的JS方法
    异步轮询函数
    响应式布局--特殊设备检测
    jQuery Validate校验
    [LeetCode#124]Binary Tree Maximum Path Sum
  • 原文地址:https://www.cnblogs.com/jiqing9006/p/10851090.html
Copyright © 2011-2022 走看看