cocos Creator[框架封装之二] 日志系统 设计 与 实现
2016-12-09 13:39
495 查看
在游戏开发中,调试代码不仅仅要靠断点调试,也需要日志输出帮助调试!此时,我们希望日志能够打赢出各种各样的颜色,来区分不同的错误信息,也需要知道该日子打印的时间和文件的代码行数,以及函数的调用者,等等。 cocos Creator调试,详细大多数人跟我一样也是借助浏览器来调试完成开发。 1.获取日志打印时间
AppLog.getDateString = function () { var d = new Date(); var str = d.getHours(); var timeStr = ""; timeStr += (str.length==1? "0"+str : str) + ":"; str = d.getMinutes(); timeStr += (str.length==1? "0"+str : str) + ":"; str = d.getSeconds(); timeStr += (str.length==1? "0"+str : str) + ":"; str = d.getMilliseconds(); if( str.length==1 ) str = "00"+str; if( str.length==2 ) str = "0"+str; timeStr += str; timeStr = "[" + timeStr + "]"; return timeStr; };
2.获取调用堆栈
AppLog.stack = function (index) { var e = new Error(); var lines = e.stack.split("\n"); lines.shift(); var result = []; lines.forEach(function (line) { line = line.substring(7); var lineBreak = line.split(" "); if (lineBreak.length<2) { result.push(lineBreak[0]); } else { result.push({[lineBreak[0]] : lineBreak[1]}); } }); var list = []; if(index < result.length-1){ for(var a in result[index]){ list.push(a); } } var splitList = list[0].split("."); return (splitList[0] + ".js->" + splitList[1] + ": "); }
3.日志封装
AppLog.log = function(){ var backLog = console.log || cc.log || log; if(OPENLOGFLAG){ backLog.call(this,"%s%s"+cc.js.formatStr.apply(cc,arguments),this.stack(2),AppLog.getDateString()); } }; AppLog.info = function () { var backLog = console.log || cc.log || log; if(OPENLOGFLAG){ backLog.call(this,"%c%s:"+cc.js.formatStr.apply(cc,arguments),"color:#00CD00;",AppLog.getDateString()); } }; AppLog.warn = function(){ var backLog = console.log || cc.log || log; if(OPENLOGFLAG){ backLog.call(this,"%c%s:"+cc.js.formatStr.apply(cc,arguments),"color:#ee7700;",AppLog.getDateString()); //cc.warn } }; AppLog.err = function(){ var backLog = console.log || cc.log || log; if(OPENLOGFLAG){ backLog.call(this,"%c%s:"+cc.js.formatStr.apply(cc,arguments),"color:red",AppLog.getDateString()); } };
转载请说明出处:http://blog.csdn.net/u013158916/article/details/53537922
相关文章推荐
- Java日志系统框架的设计与实现
- 一种Java日志系统框架的设计与实现(转)
- 一种Java日志系统框架的设计与实现
- 日志系统框架的设计与实现
- 系统原型结构描述(概述)最近要设计一个框架,大家一起讨论下如何实现?
- 一种日志结构文件系统的设计与实现(三)
- 基于WPF系统框架设计(5)-Ribbon整合Avalondock 2.0实现多文档界面设计(二)
- .NET 日志系统设计思路及实现代码
- 【Yom框架】漫谈个人框架的设计之二:新的IRepository接口+搜索和排序解耦(+基于Castle实现)
- 企业级服务器设计与实现经验之系统框架(二)
- 基于WPF系统框架设计(4)-Ribbon整合Avalondock 2.0实现多文档界面设计(一)
- .NET 插件系统框架设计(二) 使用对象序列化实现自定义配置文件管理
- .NET 日志系统设计思路及实现代码
- PDA电子邮件系统中邮件识别与封装模块的设计与实现
- 企业级服务器设计与实现经验之系统框架(一)
- 系统操作日志设计-代码实现
- 一种日志结构文件系统的设计与实现(二)
- [转载]企业级服务器设计与实现经验之系统框架(一)
- 我的权限系统设计实现MVC4 + WebAPI + EasyUI + Knockout(五)框架及Web项目的组件化
- 系统操作日志设计-代码实现(转载)