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));
}
}