Unity 日志管理系统

Overview

 

在一个项目中,程序信息输出是必不可少的。但普通的输出不易控制,大量的输出除了影响性能外,还会做成输出混乱,很难找到有效信息。

因些, 开发出LogDog这一功能插件,有效过滤输出类型和类别,帮助定位信息发出位置, 并有效地处理同时大量输出造成的降帧率的情况。

 

本文描述了高性能“Log Dog”的基本用法及其应用程序。

 

Quick Start

首先,我们看一条输出的内容格式。

Unity 日志管理系统_第1张图片

输出分三个类型,INFO、WARN、ERROR。

绿色箭头是输出标题,

红色箭头是输出序号,

蓝色箭头是输出内容,

橙色箭头是输出模块标志。

第二行就是输出所在的文件及所在行。

 

带参数的输出:

LogDog支持带多种参数的输出,可以是字符串,可以是object, 可以是多个种类的组合。

Unity 日志管理系统_第2张图片

 

过滤性输出功能:

LogDog可以对指定的模型标志进行过滤输出。这样就可以在不删除或注释代码的前提下,只关注重点的日志信息。

Unity 日志管理系统_第3张图片

在Start中,设置了对BAG和CHAT这两个模块标志进行过滤。

接着调用事件方法:

Unity 日志管理系统_第4张图片

日志的输出内容如下:

Unity 日志管理系统_第5张图片

很明显,第69和70两行的输出内容并没有输出,被过滤了。

 

没有文件定位的输出:

有时,根据需要,程序工程大部份的逻辑代码都用其它轻量级的语言来开发。比较Lua、js等。。。

这个时候可以调用不带文件定位的输出,具体的日志定位由对应的语言编写传入。

 

 

Demo 运行说明 :

LogDog还可以做自定义化输出处理,比喻写入文件、把指定的输出数据发给后台或服务器、又或者在手机上没有输出面板,需要重定义输出到显示屏幕。。。

在此做一个Demo作重定义输出到显示屏幕的处理。

Unity 日志管理系统_第6张图片

挂载启动脚本,加入UI中的ScrollView及ScrollView的Content。TextPrefab只是普通的预制体。在AJ_LogDog/Prefab目录中。

Unity 日志管理系统_第7张图片

另外加入一个Button,只为设置是否显示ScrollView。

 

设置日志的回调处理方法。

Unity 日志管理系统_第8张图片

 

打开日志面板效果如下:

Unity 日志管理系统_第9张图片

 

 

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

你可能感兴趣的:(unity插件)