背景
随着工作时间拉长和经手项目增多,代码规范性和严谨性越来越被自己重视起来。近期在做集福卡的时候,由于跟服务器对接的接口较多,在调试接口的期间代码里添加了不少日志打印信息(console.log),以至于在项目正式上线前,花了一部分时间去关闭一些不必要的调试信息。可能有些网友会说,直接全局搜索,在console前加注释符号//,当然这也是一个办法,但总有一些个别的日志信息需要保留一下,或者一旦出问题,需要开启日志的时候,你再一行一行的去解注释效率就很低。于是,想起刚毕业时候,每次项目上线我都要去一行一行挑选着屏蔽注释的时候,大佬就会说"你就不会写一个方法去打印日志,需要屏蔽的时候就屏蔽该方法内的一行输出语句就可以了。",当然大佬的原话不是这样的,当时的我也没有把大佬的意思理解到位,直到现在才理解那句话的含义。
日志打印控制类
/**
* 日志控制类 @JiatTao 2020/01/20
*/
let log = {
/**
* 调试
* @param {描述信息} desc
* @param {打印参数 类型: 单个参数/数组/json对象} param
*/
debug(desc, param){
desc = desc != undefined ? desc : '';
param = param != undefined ? param : '';
console.log('DEBUG日志', desc, param);
},
/**
* 信息
* @param {描述信息} desc
* @param {打印参数 类型: 单个参数/数组/json对象} param
*/
info(desc, param){
desc = desc != undefined ? desc : '';
param = param != undefined ? param : '';
console.log('INFO 日志', desc, param);
},
/**
* 警告
* @param {描述信息} desc
* @param {打印参数 类型: 单个参数/数组/json对象} param
*/
warn(desc, param){
desc = desc != undefined ? desc : '';
param = param != undefined ? param : '';
console.log('WARN 日志', desc, param);
},
/**
* 错误
* @param {描述信息} desc
* @param {打印参数 类型: 单个参数/数组/json对象} param
*/
err(desc, param){
desc = desc != undefined ? desc : '';
param = param != undefined ? param : '';
console.log('ERR 日志', desc, param);
},
}
备注:这个使用js语言写的一个日志打印控制类,我把自己要打印的信息分为四个等级:1、调试debug: 在与后台对接网络接口时调用,需要关闭的时候,只需要把debug方法里面的console.log注释即可或者在该方法第一行添加一个return也可以。2、信息info: 项目发布上显示需要保留的一些打印信息,永不关闭。3、警告warn:代码中需要跑出警示信息的地方调用(视个人情况与习惯而定),永不关闭。4、错误err:在需要报错的地方使用,比如try…catch…或者接口响应失败的地方调用,永不关闭。
以上是刚写的一个日志打印控制类,是一个单独的js文件,方便后面的项目开发使用。但是写完后发现,在调用的时候有些不够方便,需要在使用的地方require该文件,大大降低了开发效率和使用性。在参考了creator插件系统后,完美解决了该问题。解决方法如下:
至此,针对于cocoscreator开发的日志打印的封装就完成了。
原创不易,请勿白嫖,好人一生平安
安卓低端机适配补充:
/**
* 日志控制类 @JiatTao 2020/01/20
* 该文件导入为插件 不可写es6语法 否则低版本浏览器会报错 @JiaTao 2020/5/29
*/
'use strict';
var log = {
/**
* 调试
* @param {描述信息} desc
* @param {打印参数 类型: 单个参数/数组/json对象} param
*/
debug: function debug(desc, param) {
// return;
desc = desc != undefined ? desc : '';
param = param != undefined ? param : '';
console.log('DEBUG日志', desc, param);
},
/**
* 信息
* @param {描述信息} desc
* @param {打印参数 类型: 单个参数/数组/json对象} param
*/
info: function info(desc, param) {
desc = desc != undefined ? desc : '';
param = param != undefined ? param : '';
console.log('INFO 日志', desc, param);
},
/**
* 警告
* @param {描述信息} desc
* @param {打印参数 类型: 单个参数/数组/json对象} param
*/
warn: function warn(desc, param) {
desc = desc != undefined ? desc : '';
param = param != undefined ? param : '';
console.log('WARN 日志', desc, param);
},
/**
* 错误
* @param {描述信息} desc
* @param {打印参数 类型: 单个参数/数组/json对象} param
*/
err: function err(desc, param) {
desc = desc != undefined ? desc : '';
param = param != undefined ? param : '';
console.log('ERR 日志', desc, param);
}
};
至此,完毕。