oops-framework框架 之 日志管理(十)

引擎: CocosCreator 3.8.0

环境: Mac

Gitee: oops-game-kit

注: 作者dgflashoops-framework框架QQ群: 628575875


Logger


作者dgflash针对于oops-framework封装的日志管理类是通过Logger实现的,接口在框架中的定义:

export class oops {
    /** 日志管理 */
    static log = Logger;
}

Logger将项目中的日志类型分为了如下几种:

类型(LogType)索引颜色说明
Net1橙色网络日志
Model2紫色数据日志
Business4蓝色业务日志
View8绿色视图日志
Config16灰色配置日志
Trace32黑色标准日志

主要的接口:

接口说明
setTags()设置显示日志的类型
start()针对于某段操作开始计时
end()针对于某段操作结束计时
table()将数据打印为表格形式
trace()打印标准日志,默认为黑色
logNet()打印网络层日志
logModel()打印数据层日志
logBusiness()打印业务层日志
logView()打印视图日志
logConfig()打印配置日志

注: 标准日志支持自定义颜色修改,其他日志打印不支持

简单的使用示例:

oops.log.trace("默认标准日志");
oops.log.logConfig("灰色配置日志");
oops.log.logNet("橙色网络日志");
oops.log.logModel("紫色数据日志");
oops.log.logBusiness("蓝色业务日志");
oops.log.logView("绿色视图日志");

请添加图片描述


代码解析


关于日志打印, 以网络层日志打印为例:

// 网络日志打印
static logNet(msg: any, describe?: string) {
  this.orange(LogType.Net, msg, describe);
}

// 日志颜色的设定
private static orange(tag: LogType, msg: any, describe?: string) {
  this.print(tag, msg, "color:#ee7700;", describe)
}

/**
* 输出日志
* @param tag       日志类型
* @param msg       日志内容
* @param color     日志文本颜色
* @param describe  日志标题描述
*/
private static print(tag: LogType, msg: any, color: string, describe?: string) {
  // 标记没有打开,不打印该日志
  if (!this.isOpen(tag)) {
    return;
  }
  
  // 获取日志对象前者由JavaScript提供后者由CocosCreator的编译器提供
  // 后者本质上也是对JavaScript的console的封装
  var backLog = console.log || log;
  // 根据标签获取类型名,比如:网络日志等
  var type = names[tag];
  // 获取日期
  let date = this.getDateString();
  // 获取堆栈的简略信息
  let stack = this.stack(5);
  // 文件格式%c用于设定控制台内容的样式
  if (describe) {
    backLog.call(null, "%c%s%s%s:%s%o", color, date, '[' + type + ']', stack, describe, msg);
  } else {
    backLog.call(null, "%c%s%s%s:%o", color, date, '[' + type + ']', stack, msg);
  }
}

其他的日志打印与之类似,不再赘述。

在项目使用中,对于不同的日志类型进行分类显示或管理有助于我们通过该框架的使用,提升工作效率。


其他示例


  • 设定日志显示的标记
oops.log.setTags(LogType.Config | LogType.Trace);
  • 打印代码段的运行时间
let num = 0;
oops.log.start("debug Time:")
while (num < 100000000) {
  num++;
}
oops.log.end("debug Time:") 

// debug Time:: 69ms

注意: start()和end()的参数设定一定要保持一致,否则会记录错误

关于oops-framework针对于日志管理,本质上也就是对JavaScript内置对象console的一次封装。

关于console的更多内容可参考博客: TypeScript 之 console的使用

最后,再次感谢作者dgflash的分享,祝大家学习和生活愉快!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鹤九日

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值