Overview
在一个项目中,程序信息输出是必不可少的。但普通的输出不易控制,大量的输出除了影响性能外,还会做成输出混乱,很难找到有效信息。
因些, 开发出LogDog这一功能插件,有效过滤输出类型和类别,帮助定位信息发出位置, 并有效地处理同时大量输出造成的降帧率的情况。
本文描述了高性能“Log Dog”的基本用法及其应用程序。
Quick Start
首先,我们看一条输出的内容格式。
输出分三个类型,INFO、WARN、ERROR。
绿色箭头是输出标题,
红色箭头是输出序号,
蓝色箭头是输出内容,
橙色箭头是输出模块标志。
第二行就是输出所在的文件及所在行。
带参数的输出:
LogDog支持带多种参数的输出,可以是字符串,可以是object, 可以是多个种类的组合。
过滤性输出功能:
LogDog可以对指定的模型标志进行过滤输出。这样就可以在不删除或注释代码的前提下,只关注重点的日志信息。
在Start中,设置了对BAG和CHAT这两个模块标志进行过滤。
接着调用事件方法:
日志的输出内容如下:
很明显,第69和70两行的输出内容并没有输出,被过滤了。
没有文件定位的输出:
有时,根据需要,程序工程大部份的逻辑代码都用其它轻量级的语言来开发。比较Lua、js等。。。
这个时候可以调用不带文件定位的输出,具体的日志定位由对应的语言编写传入。
Demo 运行说明 :
LogDog还可以做自定义化输出处理,比喻写入文件、把指定的输出数据发给后台或服务器、又或者在手机上没有输出面板,需要重定义输出到显示屏幕。。。
在此做一个Demo作重定义输出到显示屏幕的处理。
挂载启动脚本,加入UI中的ScrollView及ScrollView的Content。TextPrefab只是普通的预制体。在AJ_LogDog/Prefab目录中。
另外加入一个Button,只为设置是否显示ScrollView。
设置日志的回调处理方法。
打开日志面板效果如下:
API description:
JOLog.Ins.SetTitle("LOG_TITLE");
//设置输出标题。
JOLog.Ins.SetEnable(true);
//设置输出开关, 如果为false的话, 所有日志都不作输出处理。
JOLog.Ins.SetLogLevel(1);
// Error:3>Warn:2>Info:1
//设置输出等级,大于等于Info的都作输出。
// 如果参数为2, 即只输出Warn和Error的输出等级。
JOLog.Ins.SetRunInTick(true);
// 设置输出时,是否分帧处理,建议设为true,
// 这样程序就不会因为同一时间多个输出时,带来帧率的大幅波动。
// 设为true时,需要在启动的Update中调用JOLog.Ins.Tick();
JOLog.Ins.AddIgnoreTag("Ignore Tag");
// 设置过滤标志
// 所有带些标志的日志,都不作输出。(除错误输出外)
JOLog.Ins.SetCall(this._LogCall);
void _LogCall(short logLv, string msg);
// 设置输出回调, 有需要的情况下,可以对输出作自定义处理
// 另外由于程序的一些异常捕获的输出,也是我们关注的对象,
// 如果需要作重定义输出处理的,可以引入LogExceptionCatch来补充
LogExceptionCatch.Ins.SetDebug(true);
LogExceptionCatch.Ins.SetDrawCall(this._LogCall);
Future Content
1. 进一步优化性能
2. 提供更方便的调用
3. 增加指定性输出
Welcome to contact us
Unity Asset Store URL: https://assetstore.unity.com/packages/slug/142605