Traveller/scripts/debug/LogCat.cs
Cold-Mint 92659d23b0
Prepare to add forks to the map.
准备为地图添加分叉。
2024-05-10 22:56:27 +08:00

72 lines
2.4 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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;
}
/// <summary>
/// <para>Print log</para>
/// <para>打印日志</para>
/// </summary>
/// <param name="message">
///<para>message</para>
///<para>消息</para>
/// <para>This message supports localized output, assuming there is already a translation key, Hello = 你好, passing hello will output 你好.</para>
/// <para>这个消息支持本地化输出假设已存在翻译keyHello = 你好传入Hello则会输出你好。</para>
/// </param>
public static void Log(string message)
{
GD.Print(HandleMessage(message));
}
/// <summary>
/// <para>Print error log</para>
/// <para>打印错误日志</para>
/// </summary>
/// <param name="message">
///<para>message</para>
///<para>消息</para>
/// <para>This message supports localized output, assuming there is already a translation key, Hello = 你好, passing hello will output 你好.</para>
/// <para>这个消息支持本地化输出假设已存在翻译keyHello = 你好传入Hello则会输出你好。</para>
/// </param>
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));
}
/// <summary>
/// <para>This method is called when an exception is caught</para>
/// <para>当捕获异常后调用此方法</para>
/// </summary>
/// <param name="e"></param>
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));
}
}