Unity Log 之 简单封装Debug函数宏定义控制打印
1、打开Unity,新建一个空工程,具体如下图

2、在工程中,新建一个脚本,用来封装Debug函数,然后双击或者右键编辑脚本,具体如下图

3、脚本作为一个密封类,通过宏定义开控制是否开启对应的打印信息,这里简单的封装:Log,LogWarning,LogError,具体如下 图


4、脚本的具体内容如下:
using System;
using UnityEngine;
/// <summary>
/// 封装 Debug 调试,通过宏定义来控制是否开启 Debug 的相关打印
/// </summary>
public sealed class DebugHelper
{
/// <summary>
/// Debug.Log 的封装
/// 定义了 LOG 宏,才开启打印
/// </summary>
/// <param name="message">打印的内容</param>
/// <param name="context">上下文</param>
public static void Log(object message, UnityEngine.Object context = null) {
#if LOG // 定义LOG宏,才走该处
// 添加 时间和对应的内容 Debug 打印
Debug.Log(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff")+" " +message, context);
#endif
}
/// <summary>
/// Debug.LogWarning 的封装
/// 定义了 LOGWARNING 宏,才开启打印
/// </summary>
/// <param name="message">打印的内容</param>
/// <param name="context">上下文</param>
public static void LogWarning(object message, UnityEngine.Object context = null)
{
#if LOGWARNING // LOGWARNING,才走该处
// 添加 时间和对应的内容 Debug 打印
Debug.LogWarning(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff") + " " + message, context);
#endif
}
/// <summary>
/// Debug.LogError 的封装
/// 定义了 LOGERROR 宏,才开启打印
/// </summary>
/// <param name="message">打印的内容</param>
/// <param name="context">上下文</param>
public static void LogError(object message, UnityEngine.Object context = null)
{
#if LOGERROR // LOGERROR,才走该处
// 添加 时间和对应的内容 Debug 打印
Debug.LogError(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff") + " " + message, context);
#endif
}
}
5、然后新建一个测试脚本,通过按下 空格键,来调用封装的接口,具体如下图

6、using UnityEngine;
public class Test : MonoBehaviour {
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update() {
if (Input.GetKeyDown(KeyCode.Space)) {
DebugHelper.Log("Log 的 打印测试");
DebugHelper.LogError("LogError 的 打印测试");
DebugHelper.LogWarning("LogWarning 的 打印测试");
}
}
}
7、在 Player Setting 中的 other Setting 中的 Scripting Define Symbols 中添加对应的宏定义 LOG,LOGWARNING,LOGERROR,具体如下图

8、然后在场景中个,新建一个GameObject,把 Test 测试脚本,具体如下图

9、运行场景,按下 空格键,在 console 中就会有三个接口的打印,具体如下图

10、 把Player Setting 中的 other Setting 中的 Scripting Define Symbols 中 其他两个宏定义删掉LOGWARNING,LOGERROR,仅留下 LOG 宏定义,具体如下图

11、再次在Game中按下 空格键,现在Console只打印了 Debug.Log 的打印,实现了宏定义来控制输出打印,具体如下图
