简介
Log模块是 IF(IFramework简称)框架最简单,最基础的模块。它封装了各种log的输出接口。
基础使用
测试源码:
using UnityEngine;
using IFramework; // 引入 IF框架的命名空间
// ILog 接口来自 IFramework 空间
public class TestLog : MonoBehaviour,ILog
{
public void Say()
{
string world = "Hello World";
Log.L(world); //Log类来自 IFramewosrk空间
world.Log(); // string的 Log()扩展方法 来自 IFramework空间
this.Log(world); //ILog 接口的Log()扩展方法 需要实现:ILog接口
//信息:Log、警告:Warn、错误:Err
Log.W(world);
Log.E(world);
Log.L("the message from IFramework");
Debug.Log("此消息来自Unity");
}
private void Awake()
{
Say();
}
}
运行结果:
该模块基础使用比较简单。
扩展使用
上图是IF 项目工程。其中:
- Example 文件夹 中 包含各个模块的 使用 案例。
- IFramework 文件夹 中包含 IF模块的主要源码。
- 在路径:IFramework/0.1Core/0.1Plugins/ 下有一个 IFramework 的Dll文件。该库文件中包含 Net Framework 下开发的 各种接口。它和unity无关,因此将不局限于 unity 中使用,亦可以在 控制台应用程序中被使用。
在unity中扩展 Log 代码:
using UnityEngine;
using IFramework; // 引入 IF框架的命名空间
// ILog 接口来自 IFramework 空间
public class TestLog : MonoBehaviour
{
private void Awake()
{
string world = "Hello World";
Log.loger = new UnityLog();
Log.loger.Log(IFramework.LogType.Error,world);
Debug.Log(world);
}
}
public class UnityLog : ILoger
{
public void Log(IFramework.LogType logType , object message, params object[] paras)
{
switch (logType)
{
case IFramework.LogType.Error:
Debug.LogError(message);
break;
case IFramework.LogType.Warning:
Debug.LogWarning(message);
break;
case IFramework.LogType.Default:
Debug.Log(message);
break;
}
}
public void LogFormat(IFramework.LogType logType , string format, object message, params object[] paras)
{
switch (logType)
{
case IFramework.LogType.Error:
Debug.LogErrorFormat(message as Object, format, paras);
break;
case IFramework.LogType.Warning:
Debug.LogWarningFormat(message as Object, format, paras);
break;
case IFramework.LogType.Default:
Debug.LogFormat(message as Object, format, paras);
break;
}
}
}
说明:在 上面代码中,我门自定义了一个 UnityLog 类,并在unity中实现了 ILoger 接口的两个方法。
代码很简单,其本质 就是在 Debug之上 再封装了一层。
作用:在整个IF框架中,log 的输出 不是 用“Debug”,而是用的 IFramework.Log 。虽然,它在 unity中实现是通过:Debug 实现。
若换做控制台应用程序或者Windows应用程序,其实现接口的方式 就有可能是其他。比如Console.WriteLine()
结尾
以上内容是 作者个人的理解,如有错误,欢迎指出。
顺便给出OnClick大佬自己 写的文档地址:001Log模块介绍
如果对 IF框架有其他看法,也欢迎大家 进群交流。