【U3D系統架構教程——開發篇】之二:Log日誌系統2.0
阿新 • • 發佈:2018-12-18
這篇文章由唐三胖ヾ(•ω•`)o網路整理總結,將告訴你如何開發一個高效率的日誌系統。
通過這篇文章,你可以知道
1)C#特性Condtional
2)開發2.0版的日誌系統
開篇介紹
通過上一章節的介紹,我們已經實現了重寫的日誌系統
但是寫這麼程式碼真的不方便,而且上一章節也沒做到輸出log的程式碼所在的類名
我們有什麼便捷的寫法嗎,因此
在上一章節的基礎上,我們開發了日誌管理系統2.0
只需要this.Log就可以了
具體思路:
開關不方便->新增巨集定義
輸出不方便->為原始型別擴充套件方法
一.C#特性Condtional
程式碼中用Conditonal替代開關,釋出的時候新增巨集定義就可以。
點選File->Build Settings->Player Settings->Scripting Define Symbols
裡面輸入EnableLog就可以了
二.開發2.0版的日誌系統
具體程式碼如下
using System; using System.Diagnostics; using UnityEngine; namespace SGF { public static class DebugerExtension { [Conditional("EnableLog")] public static void Log(this object obj, string message) { if(!Debuger.EnableLog) return; Debuger.Log(GetLogTag(obj),(string)message); } public static void LogError(this object obj, string message) { Debuger.LogError(GetLogTag(obj),(string)message); } public static void LogWarning(this object obj, string message) { Debuger.LogWarning(GetLogTag(obj), (string)message); } //------------------------------------------------------------------------- [Conditional("EnableLog")] public static void Log(this object obj, string format, params object[] args) { if(!Debuger.EnableLog) return; string message = string.Format(format, args); Debuger.Log(GetLogTag(obj),message); } public static void LogError(this object obj, string format, params object[] args) { string message = string.Format(format, args); Debuger.LogError(GetLogTag(obj), message); } public static void LogWarning(this object obj, string format, params object[] args) { string message = string.Format(format, args); Debuger.LogWarning(GetLogTag(obj), message); } private static string GetLogTag(object obj) { string str = obj.GetType().Name; return str; } } }
程式碼中的具體呼叫方法
using System.Collections; using System.Collections.Generic; using Assets.Scripts.Service.Core.Example; using SGF; using UnityEngine; public class AppMain : MonoBehaviour { void Start () { Debuger.EnableLog = true; } void Update() { //Debug.Log("asdasd"); this.Log("asdasd"); } }
至此日誌系統的開發告一段落
接下來是模組管理的搭建
來日方長,三胖慢慢說