TH1/Unity/Assets/Scripts/Loader/UnityLogger.cs
2025-07-17 18:26:28 +08:00

77 lines
1.9 KiB
C#

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<a href=\"{path}\" line=\"{line}\">{path}:{line}</a>";
});
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);
}
}
}