Log模块使用

2019-12-21  本文已影响0人  Qkuang

IFramework所有模块总目录

简介

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();
    }
}

运行结果:


image.png

该模块基础使用比较简单。

扩展使用

image.png

上图是IF 项目工程。其中:

  1. Example 文件夹 中 包含各个模块的 使用 案例。
  2. IFramework 文件夹 中包含 IF模块的主要源码。
  3. 在路径: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框架有其他看法,也欢迎大家 进群交流。

上一篇 下一篇

猜你喜欢

热点阅读