提交功能
This commit is contained in:
165
Log/Log.cs
Normal file
165
Log/Log.cs
Normal file
@@ -0,0 +1,165 @@
|
||||
using System.Runtime.CompilerServices;
|
||||
|
||||
namespace ACBuildService;
|
||||
|
||||
/// <summary>
|
||||
/// 全局日志静态类
|
||||
/// </summary>
|
||||
public static class Log
|
||||
{
|
||||
private static ILog _log;
|
||||
|
||||
private static Func<ILog> _createLogger = NLogger.CreateInstance;
|
||||
|
||||
public static readonly List<LogInfo> LogList = new List<LogInfo>();
|
||||
|
||||
public static Func<ILog> CreateLogger
|
||||
{
|
||||
get => _createLogger;
|
||||
set
|
||||
{
|
||||
_createLogger = value;
|
||||
_log = _createLogger();
|
||||
}
|
||||
}
|
||||
|
||||
static Log()
|
||||
{
|
||||
_log = CreateLogger();
|
||||
}
|
||||
|
||||
#region Info
|
||||
|
||||
public static void Info(string msg)
|
||||
{
|
||||
_log.Info(msg);
|
||||
AddLog(msg);
|
||||
}
|
||||
|
||||
public static void Info(ref DefaultInterpolatedStringHandler message)
|
||||
{
|
||||
var msg = message.ToStringAndClear();
|
||||
_log.Info(msg);
|
||||
AddLog(msg);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Warning
|
||||
|
||||
public static void Warning(string msg)
|
||||
{
|
||||
_log.Warning(msg);
|
||||
AddLog(msg, 1);
|
||||
}
|
||||
|
||||
public static void Warning(ref DefaultInterpolatedStringHandler message)
|
||||
{
|
||||
var msg = message.ToStringAndClear();
|
||||
_log.Warning(msg);
|
||||
AddLog(msg, 1);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Error
|
||||
|
||||
public static void Error(string msg)
|
||||
{
|
||||
_log.Error(msg);
|
||||
AddLog(msg, 2);
|
||||
}
|
||||
|
||||
public static void Error(Exception msg)
|
||||
{
|
||||
_log.Error(msg.ToString());
|
||||
AddLog(msg.ToString(), 2);
|
||||
}
|
||||
|
||||
public static void Error(ref DefaultInterpolatedStringHandler message)
|
||||
{
|
||||
var msg = message.ToStringAndClear();
|
||||
_log.Error(msg);
|
||||
AddLog(msg, 2);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Trace
|
||||
|
||||
public static void Trace(string msg)
|
||||
{
|
||||
_log.Trace(msg);
|
||||
AddLog(msg, 4);
|
||||
}
|
||||
|
||||
public static void Trace(ref DefaultInterpolatedStringHandler message)
|
||||
{
|
||||
_log.Trace(message.ToStringAndClear());
|
||||
AddLog(message.ToStringAndClear(), 4);
|
||||
}
|
||||
|
||||
public static void TraceInfo(string msg)
|
||||
{
|
||||
_log.Trace(msg);
|
||||
AddLog(msg, 4);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Debug
|
||||
|
||||
public static void Debug(string msg)
|
||||
{
|
||||
_log.Debug(msg);
|
||||
AddLog(msg, 4);
|
||||
}
|
||||
|
||||
public static void Debug(ref DefaultInterpolatedStringHandler message)
|
||||
{
|
||||
_log.Debug(message.ToStringAndClear());
|
||||
AddLog(message.ToStringAndClear(), 4);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Fatal
|
||||
|
||||
public static void Fatal(string message)
|
||||
{
|
||||
_log.Fatal(message);
|
||||
AddLog(message, 5);
|
||||
}
|
||||
|
||||
public static void Fatal(string message, params object[] args)
|
||||
{
|
||||
_log.Fatal(message, args);
|
||||
AddLog(string.Format(message, args), 5);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private static void AddLog(string msg, int level = 0)
|
||||
{
|
||||
if (LogList.Count > 1000)
|
||||
{
|
||||
LogList.RemoveAt(0);
|
||||
}
|
||||
|
||||
LogInfo log = new LogInfo
|
||||
{
|
||||
message = msg,
|
||||
level = level,
|
||||
timestamp = DateTime.Now.ToString("yyyy.MM.dd HH:mm:ss.fff")
|
||||
};
|
||||
LogList.Add(log);
|
||||
}
|
||||
}
|
||||
|
||||
[Serializable]
|
||||
public class LogInfo
|
||||
{
|
||||
public string timestamp { get; set; }
|
||||
public int level { get; set; }
|
||||
public string message { get; set; }
|
||||
}
|
||||
Reference in New Issue
Block a user