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的分享,祝大家学习和生活愉快!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/264530.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

docker 一键寻找容器在服务器存储位置

docker ps -a找到容器id/容器名称 docker inspect 容器id/容器名称 | grep UpperDir找出该容器在物理机的位置 inspect作用:查看docker详细信息 cd到UpperDir所指向的地址&#xff0c;找到配置文件并修改,到这后,这个位置和你用exec命令进入容器内看到文件是一致的

vue3中关于echars的使用

今天介绍一个好用的插件echars&#xff0c;一个可视化插件Apache ECharts 一、使用步骤 1、安装 npm install echarts --save 2、导入 import * as echarts from echarts 3、正式使用 echars的使用非常的简单&#xff0c;直接点击官网有现成的代码的可用 代码示例 <t…

分层网络模型(OSI、TCP/IP)及对应的网络协议

OSI七层网络模型 OSI&#xff08;Open System Interconnect&#xff09;&#xff0c;即开放式系统互连参考模型&#xff0c; 一般都叫OSI参考模型&#xff0c;是ISO组织于1985年研究的网络互连模型。OSI是分层的体系结构&#xff0c;每一层是一个模块&#xff0c;用于完成某种功…

Java网络编程——安全网络通信

在网络上&#xff0c;信息在由源主机到目标主机的传输过程中会经过其他计算机。在一般情况下&#xff0c;中间的计算机不会监听路过的信息。但在使用网上银行或者进行信用卡交易时&#xff0c;网络上的信息有可能被非法分子监听&#xff0c;从而导致个人隐私的泄露。由于Intern…

Windows 和 MacOS 上安装配置ADB(安卓调试桥)

一、Android 调试桥 (ADB) Android 调试桥&#xff08;ADB&#xff09; 是一款多功能命令行工具&#xff0c;它让你能够更便捷地访问和管理 Android 设备。使用 ADB 命令&#xff0c;你可以轻松执行以下操作 在设备上安装、复制和删除文件&#xff1b;安装应用程序&#xff1…

生产问题: 利用线程Thread预加载数据缓存,其它类全局变量获取缓存偶发加载不到

生产问题: 利用线程Thread预加载数据缓存偶发加载不到 先上代码 public class ThreadTest {//本地缓存Map<String, Object> map new HashMap<String, Object>();class ThreadA implements Runnable{Overridepublic void run() {System.out.println("Thread…

Unity中C#如何访问并修改Shader材质

文章目录 前言一、我们用点击按钮来改变Shader传入的颜色值1、在渲染GUI时&#xff0c;绘制一个按钮2、我们使用一个公共的成员变量存储需要进行修改的游戏对象3、最后给绘制的按钮点击增加逻辑即可 二、测试使用的代码1、Shader代码&#xff1a;2、C#脚本 前言 我们写好Shade…

办公word-从不是第一页添加页码

总结 实际需要注意的是&#xff0c;分隔符、分节符和分页符并不是一个含义 分隔符包含其他两个&#xff1b;分页符&#xff1a;是增加一页&#xff1b;分节符&#xff1a;指将文档分为几部分。 从不是第一页插入页码1步骤 1&#xff0c;插入默认页码 自己可以测试时通过**…

Leetcode—389.找不同【简单】

2023每日刷题&#xff08;五十五&#xff09; Leetcode—389.找不同 实现代码 char findTheDifference(char* s, char* t) {int len strlen(s);int len2 len 1;int a[26] {0};int b[26] {0};if(len 0) {return t[0];}for(int i 0; i < len; i) {int idx s[i] - a;…

Fabric链码部署-go语言

最近在搞Fabric&#xff0c;今天刚刚明白如何把自己的链码部署并能跑通 网上的中文教程完全不友好&#xff0c;上来直接开始写代码&#xff0c;我连新建什么文件夹都不知道啊&#xff01;&#xff01; 于是痛定思痛&#xff0c;爆肝了一周多的官方文档 准备自己写一个&#…

大数据技术8:StarRocks极速全场景MPP数据库

前言&#xff1a;StarRocks原名DorisDB&#xff0c;是新一代极速全场景MPP数据库。StarRocks 是 Apache Doris 的 Fork 版本。StarRocks 连接的多种源。一是通过这个 CDC 或者说通过这个 ETL 的方式去灌到这个 StarRocks 里面&#xff1b;二是还可以去直接的和这些老的 kafka 或…

搜狗输入法v模式 | 爱莉希雅皮肤

搜狗输入法v模式 | 爱莉希雅皮肤 前言爱莉希雅皮肤v模式 前言 搜狗输入法有v模式&#xff0c;v模式是一个转换和计算的功能组合。拥有数字转换、日期转换、算式计算、函数计算等功能。本文介绍如何使用v模式&#xff0c;并附赠一个爱莉希雅的皮肤&#xff0c;可通过百度网盘下…