using System; using System.Text; using Godot; namespace ColdMint.scripts.debug; public 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)); } public static void LogError(Exception e) { GD.PrintErr(HandleMessage(e.Message).Append('\n').Append(e.StackTrace)); } }