五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網 會員登陸 & 注冊

Cocos creator之日志系統(tǒng)

2021-12-13 17:28 作者:unity小能手  | 我要投稿


這一篇介紹日志系統(tǒng)的設計。一般我們開發(fā)一個demo,只會簡單的用cocos提供的cc.log打印下日志,方便調試功能。但是要開發(fā)一個商業(yè)項目,還要考慮怎么收集日志,方便產品上線后定位線上問題。如果線上產品運行出異常時能把當時的上下文日志發(fā)到一個文件服務器,有利于分析異常的原因。例如如果有通信數據日志,可以先判斷是后端返回數據異常,還是前端邏輯出問題。因此,我會在項目里設計一個統(tǒng)一的日志系統(tǒng),游戲里所有日志的打印都使用該日志系統(tǒng)進行打印。

首先對日志進行分級

/**

* 日志等級枚舉

*/

export enum LogLv {

DEBUG = 0,

INFO,

WARN,

ERROR

}

調試和內部測試時打開所有等級的日志,上線后只打開info等級以上的日志。

產品上線后,日志需要緩存,在異常發(fā)生時進行上報

private static MAX_LEN: number = 5000;

private static CLEAR_COUNT: number = 1000;

private static logs: Array<LogInfo> = [];

這里設定一個清理的條數,當緩存達到上限,把指定條數的舊日志清理出去。當然也可以使用鏈表實現的隊列或環(huán)形buffer緩存,達到上限后只替換一條。

每次調用打印方法時,根據設定的日志等級進行攔截,如果打印等級小于輸出等級,不做輸出。每個打印都可以添加tag,方便日志排查時根據模塊定位問題。

/**

* 收集、打印調試等級的日志

* @param tag

* @param msg

*/

public static debug(tag: string, msg: string): void {

if (Logger.level > LogLv.DEBUG) {

return;

}

let logMsg = "[DEBUG] [" + tag + "] " + msg;

Logger._addLog(LogLv.DEBUG, logMsg);

cc.log(logMsg);

}

日志緩存處理

/**

* 添加緩存日志

* @param level

* @param logMsg

*/

private static _addLog(level: LogLv, logMsg: string): void {

if (Logger.logs.length >= Logger.MAX_LEN) {

Logger.logs.splice(0, Logger.CLEAR_COUNT);

}

Logger.logs.push({

level: level,

msg: logMsg

});

}

對于網頁版本,可以實現window.onerror方法,在這里把所有日志連接成字符串上傳到日志文件服務器,實現對異常日志的收集上報。

更多資源請點擊:https://bycwedu.vipwan.cn/promotion_channels/630597732


Cocos creator之日志系統(tǒng)的評論 (共 條)

分享到微博請遵守國家法律
浑源县| 贵港市| 巴南区| 沂源县| 兴山县| 阜平县| 石棉县| 宁乡县| 正镶白旗| 馆陶县| 武义县| 寿阳县| 西青区| 济阳县| 依安县| 浙江省| 星子县| 肥西县| 长丰县| 娄烦县| 余干县| 巨鹿县| 阜平县| 清流县| 阳谷县| 疏附县| 保山市| 富顺县| 麟游县| 永登县| 河北区| 叙永县| 长子县| 垦利县| 华阴市| 井研县| 喜德县| 奉新县| 普兰县| 珲春市| 嵊泗县|