using System; using System.Text; using Godot; namespace ColdMint.scripts.debug; public static class LogCat { private static readonly StringBuilder StringBuilder = new StringBuilder(); private static StringBuilder HandleMessage(string message) { StringBuilder.Clear(); StringBuilder.Append(DateTime.Now.ToString("yyyy-M-d HH:mm:ss |")); StringBuilder.Append(TranslationServer.Translate(message)); return StringBuilder; } /// /// Print log /// 打印日志 /// /// ///message ///消息 /// This message supports localized output, assuming there is already a translation key, Hello = 你好, passing hello will output 你好. /// 这个消息支持本地化输出,假设已存在翻译key,Hello = 你好,传入Hello则会输出你好。 /// public static void Log(string message) { GD.Print(HandleMessage(message)); } /// /// Print error log /// 打印错误日志 /// /// ///message ///消息 /// This message supports localized output, assuming there is already a translation key, Hello = 你好, passing hello will output 你好. /// 这个消息支持本地化输出,假设已存在翻译key,Hello = 你好,传入Hello则会输出你好。 /// public static void LogError(string message) { GD.PrintErr(HandleMessage(message)); } public static void LogErrorWithFormat(string message, params object?[] args) { GD.PrintErr(string.Format(HandleMessage(message).ToString(), args)); } public static void LogWithFormat(string message, params object?[] args) { GD.Print(string.Format(HandleMessage(message).ToString(), args)); } /// /// This method is called when an exception is caught /// 当捕获异常后调用此方法 /// /// public static void WhenCaughtException(Exception e) { //Log an exception here or send it to the server. //请在这里记录异常或将异常发送至服务器。 GD.PrintErr(HandleMessage(e.Message).Append('\n').Append(e.StackTrace)); } }