封装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);
}
可以有效的记录,每个接口下的错误日志,参数与返回数据。
封装Json+日志的更多相关文章
- 使用Map List 封装json数据
<dependency> <groupId>net.sf.json-lib</groupId> <artifactId>json-lib</art ...
- Web自动化框架之五一套完整demo的点点滴滴(excel功能案例参数化+业务功能分层设计+mysql数据存储封装+截图+日志+测试报告+对接缺陷管理系统+自动编译部署环境+自动验证false、error案例)
标题很大,想说的很多,不知道从那开始~~直接步入正题吧 个人也是由于公司的人员的现状和项目的特殊情况,今年年中后开始折腾web自动化这块:整这个原因很简单,就是想能让自己偷点懒.也让减轻一点同事的苦力 ...
- 编写JsonResult封装JSON返回值(模板参阅)
编写JsonResult封装JSON返回值 package cn.tedu.note.util; import java.io.Serializable; import cn.tedu.note.se ...
- HAproxy Json日志格式配置
通过日志工作分析日志时,非json日志分析起来比较麻烦.通过以下的配置,可以让生成的日志为json. log-format {"haproxy_clientIP":"%c ...
- SpringBoot之封装json对象返回json数据
/** * @description:封装json对象,所有返回结果都使用它 **/ public class Result<T> { private int code;// 业务自定义状 ...
- jquey ajax 将变量值封装json传入JAVA action获取解析
最近在做一个小小的功能模块,前台有很多的数据需要传入到后台,前台页面设计如下: 看起来不是很清楚,总之表单中的数据都要提交到后台进行处理,然后插入到数据库,而且是一起提交到后台的,实现的方法大致有两种 ...
- flink---实时项目--day02-----1. 解析参数工具类 2. Flink工具类封装 3. 日志采集架构图 4. 测流输出 5. 将kafka中数据写入HDFS 6 KafkaProducer的使用 7 练习
1. 解析参数工具类(ParameterTool) 该类提供了从不同数据源读取和解析程序参数的简单实用方法,其解析args时,只能支持单只参数. 用来解析main方法传入参数的工具类 public c ...
- Springboot单例模式实战封装json转换
一.定义 保证一个类仅有一个实例,并提供一个全局访问点. 二.优点 (1)在内存里只有一个实例,减少了内存开销 (2)可以避免对资源的多重占用 (3)设置全局访问点,严格控制访问 ...
- ELK7.4.0分析nginx json日志
ELK7.4.0单节点部署 环境准备 安装系统,数据盘设置为/srv 内核优化参考 我们需要创建elk专用的账号,并创建所需要的目录并授权 useradd elk; mkdir /srv/{app,d ...
随机推荐
- 对拍——>bat
为了凸显对拍滴重要性.就拿来当置顶啦! ——本来是那样想的 ---------------------------------------------------------------------- ...
- JSP+Oracle实现分页功能
Oracle: create table load( id char(200) not null, title varchar2(100) not null, time varchar2(100) n ...
- 《论文翻译》 GIOU
目录 广义交并比-GIOU(回归检测的一种指标和Loss) 注释 1. 摘要 2. 介绍 3. 相关工作 4. 广义交并比 5. GIOU作为目标检测的LOSS 6. 实验结果 7. 个人理解 单词汇 ...
- Hadoop zookeeper hbase spark phoenix (HA)搭建过程
环境介绍: 系统:centos7 软件包: apache-phoenix-4.14.0-HBase-1.4-bin.tar.gz 下载链接:http://mirror.bit.edu.cn/apac ...
- [WEB安全]phpMyadmin后台任意文件包含漏洞分析(CVE-2018-12613)
0x00 简介 影响版本:4.8.0--4.8.1 本次实验采用版本:4.8.1 0x01 效果展示 payload: http://your-ip:8080/index.php?target=db_ ...
- 微信小程序--更换用户头像/上传用户头像/更新用户头像
changeAvatar:function (){ var that=this; wx.chooseImage({ count: 1, // 默认9 sizeType: ['original', 'c ...
- Linux 系统配置IPv6
1.自动获取IPV6地址 1)修改/etc/sysconfig/network文件,修改如下字段,不存在则手动添加,部分系统默认是开启的NETWORKING_IPV6=yes 2)修改/etc/sys ...
- CTR预估之LR与GBDT融合
转载自:http://www.cbdio.com/BigData/2015-08/27/content_3750170.htm 1.背景 CTR预估,广告点击率(Click-Through Rate ...
- opencv 检测人脸、人眼
This tutorial code’s is shown lines below. You can also download it from here . The second version ( ...
- 微信小程序测试检查点
1.权限测试 需要检查以下几种情况下微信用户访问的权限1)未授权微信登录小程序未授权时,一般使用一些业务功能的时候,都会弹出提醒:先授权再操作对应功能.或在提交数据到后台的时候,会提示补充相关身份信息 ...