using System; using System.Text.RegularExpressions; namespace ET { public class UnityLogger: ILog { public void Trace(string msg) { UnityEngine.Debug.Log(msg); } public void Debug(string msg) { UnityEngine.Debug.Log(msg); } public void Info(string msg) { UnityEngine.Debug.Log(msg); } public void Warning(string msg) { UnityEngine.Debug.LogWarning(msg); } public void Error(string msg) { #if UNITY_EDITOR msg = Msg2LinkStackMsg(msg); #endif UnityEngine.Debug.LogError(msg); } private static string Msg2LinkStackMsg(string msg) { msg = Regex.Replace(msg,@"at (.*?) in (.*?\.cs):(\w+)", match => { string path = match.Groups[2].Value; string line = match.Groups[3].Value; return $"{match.Groups[1].Value}\n{path}:{line}"; }); return msg; } public void Error(Exception e) { UnityEngine.Debug.LogException(e); } public void Trace(string message, params object[] args) { UnityEngine.Debug.LogFormat(message, args); } public void Warning(string message, params object[] args) { UnityEngine.Debug.LogWarningFormat(message, args); } public void Info(string message, params object[] args) { UnityEngine.Debug.LogFormat(message, args); } public void Debug(string message, params object[] args) { UnityEngine.Debug.LogFormat(message, args); } public void Error(string message, params object[] args) { UnityEngine.Debug.LogErrorFormat(message, args); } } }