1. /**
  2. * 输出json
  3. * @param $msg
  4. * @param int $errno
  5. */
  6. public function printOutError($msg = '操作失败', $errno = 10099)
  7. {
  8. $result = [
  9. 'msg' => $msg,
  10. 'errno' => $errno
  11. ];
  12. $param = $_POST ?: $_GET;
  13. setlog($param, $result, CONTROLLER_NAME . '/' . ACTION_NAME, C('DB_NAME') . '_error.log');
  14. $this->setErr($errno, $msg);
  15. $this->Send();
  16. }
  17. /**
  18. * 输出json
  19. * @param $msg
  20. * @param int $errno
  21. */
  22. public function E($msg = '操作失败', $errno = 10099)
  23. {
  24. $result = [
  25. 'msg' => $msg,
  26. 'errno' => $errno
  27. ];
  28. $param = $_POST ?: $_GET;
  29. setlog($param, $result, CONTROLLER_NAME . '/' . ACTION_NAME, C('DB_NAME') . '_error.log');
  30. $this->setErr($errno, $msg);
  31. $this->Send();
  32. }
  33. /**
  34. * 输出json
  35. * @param array $out_data
  36. * @param string $msg
  37. * @param bool $force_out 强制展示结果
  38. */
  39. public function printOutSuccess($out_data = [], $msg = '操作成功', $force_out = false)
  40. {
  41. $result = [
  42. 'msg' => $msg,
  43. 'data' => $out_data
  44. ];
  45. $param = $_POST ?: $_GET;
  46. setlog($param, $result, CONTROLLER_NAME . '/' . ACTION_NAME, C('DB_NAME') . '_success.log');
  47. $this->setErr(0, $msg);
  48. if ($out_data || $force_out) {
  49. $this->setAttr('data', $out_data !== null ? $out_data : []); // null的时候返回空
  50. }
  51. $this->Send();
  52. }
  53. /**
  54. * 输出json
  55. * @param array $out_data
  56. * @param string $msg
  57. * @param bool $force_out 强制展示结果
  58. */
  59. public function S($out_data = [], $msg = '操作成功', $force_out = false)
  60. {
  61. $result = [
  62. 'msg' => $msg,
  63. 'data' => $out_data
  64. ];
  65. $param = $_POST ?: $_GET;
  66. setlog($param, $result, CONTROLLER_NAME . '/' . ACTION_NAME, C('DB_NAME') . '_success.log');
  67. $this->setErr(0, $msg);
  68. if ($out_data || $force_out) {
  69. $this->setAttr('data', $out_data !== null ? $out_data : []); // null的时候返回空
  70. }
  71. $this->Send();
  72. }
  1. // 全局通用日志工具
  2. function setlog($param = [],$result = [],$name='',$filename = 'm.log',$path = '/tmp/log/'){
  3. // 没有目录则创建目录
  4. if (!mkdir($path, 0777, true) && !is_dir($path)) {
  5. throw new \RuntimeException(sprintf('目录 "%s" 创建失败', $path));
  6. } // 目录,权限,递归
  7. if ($result && $param) {
  8. $arr = array(
  9. 'param' => $param,
  10. 'result' => $result,
  11. 'name' => $name,
  12. 'time' => date('Y-m-d H:i:s')
  13. );
  14. } else {
  15. $arr = array(
  16. 'content' => $param ?:$result,
  17. 'name' => $name,
  18. 'time' => date('Y-m-d H:i:s')
  19. );
  20. }
  21. file_put_contents($path.$filename,var_export($arr,true).PHP_EOL,FILE_APPEND);
  22. }

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

封装Json+日志的更多相关文章

  1. 使用Map List 封装json数据

    <dependency> <groupId>net.sf.json-lib</groupId> <artifactId>json-lib</art ...

  2. Web自动化框架之五一套完整demo的点点滴滴(excel功能案例参数化+业务功能分层设计+mysql数据存储封装+截图+日志+测试报告+对接缺陷管理系统+自动编译部署环境+自动验证false、error案例)

    标题很大,想说的很多,不知道从那开始~~直接步入正题吧 个人也是由于公司的人员的现状和项目的特殊情况,今年年中后开始折腾web自动化这块:整这个原因很简单,就是想能让自己偷点懒.也让减轻一点同事的苦力 ...

  3. 编写JsonResult封装JSON返回值(模板参阅)

    编写JsonResult封装JSON返回值 package cn.tedu.note.util; import java.io.Serializable; import cn.tedu.note.se ...

  4. HAproxy Json日志格式配置

    通过日志工作分析日志时,非json日志分析起来比较麻烦.通过以下的配置,可以让生成的日志为json. log-format {"haproxy_clientIP":"%c ...

  5. SpringBoot之封装json对象返回json数据

    /** * @description:封装json对象,所有返回结果都使用它 **/ public class Result<T> { private int code;// 业务自定义状 ...

  6. jquey ajax 将变量值封装json传入JAVA action获取解析

    最近在做一个小小的功能模块,前台有很多的数据需要传入到后台,前台页面设计如下: 看起来不是很清楚,总之表单中的数据都要提交到后台进行处理,然后插入到数据库,而且是一起提交到后台的,实现的方法大致有两种 ...

  7. flink---实时项目--day02-----1. 解析参数工具类 2. Flink工具类封装 3. 日志采集架构图 4. 测流输出 5. 将kafka中数据写入HDFS 6 KafkaProducer的使用 7 练习

    1. 解析参数工具类(ParameterTool) 该类提供了从不同数据源读取和解析程序参数的简单实用方法,其解析args时,只能支持单只参数. 用来解析main方法传入参数的工具类 public c ...

  8. Springboot单例模式实战封装json转换

    一.定义 保证一个类仅有一个实例,并提供一个全局访问点. 二.优点 (1)在内存里只有一个实例,减少了内存开销      (2)可以避免对资源的多重占用      (3)设置全局访问点,严格控制访问 ...

  9. ELK7.4.0分析nginx json日志

    ELK7.4.0单节点部署 环境准备 安装系统,数据盘设置为/srv 内核优化参考 我们需要创建elk专用的账号,并创建所需要的目录并授权 useradd elk; mkdir /srv/{app,d ...

随机推荐

  1. ros平台下python脚本控制机械臂运动

    在使用moveit_setup_assistant生成机械臂的配置文件后可以使用roslaunch demo.launch启动demo,在rviz中可以通过拖动机械臂进行运动学正逆解/轨迹规划等仿真运 ...

  2. 微信H5的video标签解决方案

    https://github.com/cczw2010/weixin-video 偶尔发现了可以h5化的一种更适合的方式,一个有趣的属性 h5-page 已经更新

  3. hive 使用beelin连接报错

    1.在当前服务器启动hiveserver2服务,远程客户端通过beeline连接 报错信息如下: root@master:~# beeline -u jdbc:hive2//master:10000 ...

  4. vue的基本用法

    公共样式---pc版的404报错 动态src 这个是vue组件template部分 <div class="not-found"> <img :src=" ...

  5. 使用Python调用Zabbix API

    Zabbix API官方文档: https://www.zabbix.com/documentation/4.0/zh/manual/api 1.向 api_jsonrpc.php 发送HTTP_PO ...

  6. Arts打卡第6周

    Algorithm.主要是为了编程训练和学习. 每周至少做一个 leetcode 的算法题(先从Easy开始,然后再Medium,最后才Hard). 进行编程训练,如果不训练你看再多的算法书,你依然不 ...

  7. arcgis python 调用工具两种两种方法

    arcpy.Select_analysis("p","kk") arcpy.analysis.Select("p","kk1&qu ...

  8. Python Log Viewer

    https://pythonhosted.org/logview/

  9. PaddlePaddle实现线性回归

    在本次实验中我们将使用PaddlePaddle来搭建一个简单的线性回归模型,并利用这一模型预测你的储蓄(在某地区)可以购买多大面积的房子.并且在学习模型搭建的过程中,了解到机器学习的若干重要概念,掌握 ...

  10. 34 Flutter仿京东商城项目 用户注册 注册流程 POST发送验证码 倒计时功能 验证验证码

    加群452892873 下载对应34课文件,运行方法,建好项目,直接替换lib目录 以下列出的是本课涉及的文件. RegisterFirst.dart import 'package:flutter/ ...