62 lines
1.3 KiB
C#
62 lines
1.3 KiB
C#
using System;
|
|
using System.Text;
|
|
|
|
namespace ZTools;
|
|
|
|
public enum LogLevel
|
|
{
|
|
Error,
|
|
Warning,
|
|
Info,
|
|
Debug,
|
|
}
|
|
|
|
public static class Log
|
|
{
|
|
private static StringBuilder _logBuilder;
|
|
private static StringBuilder _tmp;
|
|
|
|
internal static StringBuilder LogBuilder => _logBuilder;
|
|
public delegate void LogDelegate(string msg);
|
|
public static LogDelegate LogCallback;
|
|
|
|
static Log()
|
|
{
|
|
_logBuilder = new StringBuilder();
|
|
_tmp = new StringBuilder();
|
|
}
|
|
|
|
public static void Debug(object message)
|
|
{
|
|
Write(message, LogLevel.Debug);
|
|
}
|
|
|
|
public static void Info(object message)
|
|
{
|
|
Write(message, LogLevel.Info);
|
|
}
|
|
|
|
public static void Error(object message)
|
|
{
|
|
Write(message, LogLevel.Error);
|
|
}
|
|
|
|
public static void Warning(object message)
|
|
{
|
|
Write(message, LogLevel.Warning);
|
|
}
|
|
|
|
static void Write(object message, LogLevel level = LogLevel.Debug)
|
|
{
|
|
// var bytes = Encoding.UTF8.GetBytes(message.ToString() ?? string.Empty);
|
|
// var s = Encoding.UTF8.GetString(bytes);
|
|
|
|
_tmp.Clear();
|
|
_tmp.Append($"[{DateTime.Now:yyyy-MM-dd HH:mm:ss.fff}] {level}: {message}");
|
|
|
|
var format = _tmp.ToString();
|
|
_logBuilder.AppendLine(format);
|
|
Console.WriteLine(format);
|
|
LogCallback?.Invoke(format);
|
|
}
|
|
} |