【日志】 Debug改造-格式重写

0x001 需求

很多框架都包含了自己的日志功能,如果我们自己去写框架难免会用到这个功能,如写出Log文件,进行跨平台调试。

0x002 分析

根据上述需求,做出如下分析

经过测试,使用扩展方法去扩展Debug类无效,原因是Debug类是只读属性的。
那么我们只有去重写或者利用命名空间让编译器选择我们的Debug类,从而实现替换unityDebug的效果。

0x003 实现步骤

1.创建Debug类

不需要继承任何类,设置为静态类

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public static class Debug  {

}
1.查看UnityEngine.Debug类

查看类中方法及方法的参数,并在我们的Debug类中进行实现。


unity

我们在自己的类中实现,主要实现这几个就可以了,这里我就只实现单参数的=-=

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public static class Debug  {
    public static void Log(object message)
    {
        UnityEngine.Debug.Log(message);
    }
    public static void LogWarning(object message)
    {
        UnityEngine.Debug.LogWarning(message);
    }
    public static void LogError(object message)
    {
        UnityEngine.Debug.LogError(message);
    }
}

我们当然可以去做一些前缀之类的= =

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public static class Debug  {
    public static void Log(object message)
    {
        
        UnityEngine.Debug.Log("zhiyuan1:"+message);
    }
    public static void LogWarning(object message)
    {
        UnityEngine.Debug.LogWarning("zhiyuan2:" + message);
    }
    public static void LogError(object message)
    {
        UnityEngine.Debug.LogError("zhiyuan3:" + message);
    }
}

0x004 实现效果

随便新建一个脚本

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class test : MonoBehaviour {

    // Use this for initialization
    void Start () {
        Debug.Log("Log");
        Debug.LogWarning("LogWarning");
        Debug.LogError("LogError");
    }
}

测试

你可能感兴趣的:(【日志】 Debug改造-格式重写)