33
Logger/AbstractLogger.cs
Normal file
33
Logger/AbstractLogger.cs
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
using Debugger;
|
||||||
|
using Shrink.Config;
|
||||||
|
|
||||||
|
namespace Shrink.Logger;
|
||||||
|
|
||||||
|
public abstract class AbstractLogger
|
||||||
|
{
|
||||||
|
private AbstractLogger? _nextLogger;
|
||||||
|
protected LogLevel LogLevel;
|
||||||
|
|
||||||
|
public void SetNextLogger(AbstractLogger? nextLogger)
|
||||||
|
{
|
||||||
|
_nextLogger = nextLogger;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void LogMessage(string data, string eventName, LogLevel level, MsgType msgType, uint uin, string message)
|
||||||
|
{
|
||||||
|
//LogLevel = Info
|
||||||
|
//Config设置为Only Fatal
|
||||||
|
if (LogLevel == level)
|
||||||
|
{
|
||||||
|
//Info 3
|
||||||
|
//Fatal 0
|
||||||
|
if (LogLevel > Configuration.Instance.Config.LogLevel) return;
|
||||||
|
Log(data, eventName, msgType, uin, message);
|
||||||
|
LogManager.Instance.IsSent = true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
_nextLogger?.LogMessage(data, eventName, level, msgType, uin, message);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected abstract void Log(string data, string eventName, MsgType msgType, uint uin, string message);
|
||||||
|
}
|
||||||
28
Logger/DebugLogger.cs
Normal file
28
Logger/DebugLogger.cs
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
using Debugger;
|
||||||
|
using Lagrange.Core.Common.Interface.Api;
|
||||||
|
using Lagrange.Core.Message;
|
||||||
|
using Shrink.Service;
|
||||||
|
|
||||||
|
namespace Shrink.Logger;
|
||||||
|
|
||||||
|
public class DebugLogger : AbstractLogger
|
||||||
|
{
|
||||||
|
public DebugLogger(LogLevel level)
|
||||||
|
{
|
||||||
|
LogLevel = level;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void Log(string data, string eventName, MsgType msgType, uint uin, string message)
|
||||||
|
{
|
||||||
|
if (msgType == MsgType.Public)
|
||||||
|
{
|
||||||
|
var chain = MessageBuilder.Group(uin).Text($"[{data}] [{eventName}] [Debug] {message}");
|
||||||
|
BotService.Instance.Client!.SendMessage(chain.Build());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var chain = MessageBuilder.Friend(uin).Text($"[{data}] [{eventName}] [Debug] {message}");
|
||||||
|
BotService.Instance.Client!.SendMessage(chain.Build());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
28
Logger/ErrorLogger.cs
Normal file
28
Logger/ErrorLogger.cs
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
using Debugger;
|
||||||
|
using Lagrange.Core.Common.Interface.Api;
|
||||||
|
using Lagrange.Core.Message;
|
||||||
|
using Shrink.Service;
|
||||||
|
|
||||||
|
namespace Shrink.Logger;
|
||||||
|
|
||||||
|
public class ErrorLogger : AbstractLogger
|
||||||
|
{
|
||||||
|
public ErrorLogger(LogLevel level)
|
||||||
|
{
|
||||||
|
LogLevel = level;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void Log(string data, string eventName, MsgType msgType, uint uin, string message)
|
||||||
|
{
|
||||||
|
if (msgType == MsgType.Public)
|
||||||
|
{
|
||||||
|
var chain = MessageBuilder.Group(uin).Text($"[{data}] [{eventName}] [Error] {message}");
|
||||||
|
BotService.Instance.Client!.SendMessage(chain.Build());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var chain = MessageBuilder.Friend(uin).Text($"[{data}] [{eventName}] [Error] {message}");
|
||||||
|
BotService.Instance.Client!.SendMessage(chain.Build());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
28
Logger/FatalLogger.cs
Normal file
28
Logger/FatalLogger.cs
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
using Debugger;
|
||||||
|
using Lagrange.Core.Common.Interface.Api;
|
||||||
|
using Lagrange.Core.Message;
|
||||||
|
using Shrink.Service;
|
||||||
|
|
||||||
|
namespace Shrink.Logger;
|
||||||
|
|
||||||
|
public class FatalLogger : AbstractLogger
|
||||||
|
{
|
||||||
|
public FatalLogger(LogLevel level)
|
||||||
|
{
|
||||||
|
LogLevel = level;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void Log(string data, string eventName, MsgType msgType, uint uin, string message)
|
||||||
|
{
|
||||||
|
if (msgType == MsgType.Public)
|
||||||
|
{
|
||||||
|
var chain = MessageBuilder.Group(uin).Text($"[{data}] [{eventName}] [Fatal] {message}");
|
||||||
|
BotService.Instance.Client!.SendMessage(chain.Build());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var chain = MessageBuilder.Friend(uin).Text($"[{data}] [{eventName}] [Fatal] {message}");
|
||||||
|
BotService.Instance.Client!.SendMessage(chain.Build());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
28
Logger/InfoLogger.cs
Normal file
28
Logger/InfoLogger.cs
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
using Debugger;
|
||||||
|
using Lagrange.Core.Common.Interface.Api;
|
||||||
|
using Lagrange.Core.Message;
|
||||||
|
using Shrink.Service;
|
||||||
|
|
||||||
|
namespace Shrink.Logger;
|
||||||
|
|
||||||
|
public class InfoLogger : AbstractLogger
|
||||||
|
{
|
||||||
|
public InfoLogger(LogLevel level)
|
||||||
|
{
|
||||||
|
LogLevel = level;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void Log(string data, string eventName, MsgType msgType, uint uin, string message)
|
||||||
|
{
|
||||||
|
if (msgType == MsgType.Public)
|
||||||
|
{
|
||||||
|
var chain = MessageBuilder.Group(uin).Text($"[{data}] [{eventName}] [Info] {message}");
|
||||||
|
BotService.Instance.Client!.SendMessage(chain.Build());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var chain = MessageBuilder.Friend(uin).Text($"[{data}] [{eventName}] [Info] {message}");
|
||||||
|
BotService.Instance.Client!.SendMessage(chain.Build());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
28
Logger/LogManager.cs
Normal file
28
Logger/LogManager.cs
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
using Debugger;
|
||||||
|
|
||||||
|
namespace Shrink.Logger;
|
||||||
|
|
||||||
|
public class LogManager
|
||||||
|
{
|
||||||
|
private static readonly Lazy<LogManager> _instance = new(() => new LogManager());
|
||||||
|
public static LogManager Instance => _instance.Value;
|
||||||
|
public AbstractLogger LogChain { get; }
|
||||||
|
|
||||||
|
public bool IsSent;
|
||||||
|
|
||||||
|
public LogManager()
|
||||||
|
{
|
||||||
|
AbstractLogger fatalLogger = new FatalLogger(LogLevel.Fatal);
|
||||||
|
AbstractLogger errorLogger = new ErrorLogger(LogLevel.Error);
|
||||||
|
AbstractLogger warnLogger = new WarnLogger(LogLevel.Warn);
|
||||||
|
AbstractLogger infoLogger = new InfoLogger(LogLevel.Info);
|
||||||
|
AbstractLogger verboseLogger = new VerboseLogger(LogLevel.Verbose);
|
||||||
|
AbstractLogger debugLogger = new DebugLogger(LogLevel.Debug);
|
||||||
|
fatalLogger.SetNextLogger(errorLogger);
|
||||||
|
errorLogger.SetNextLogger(warnLogger);
|
||||||
|
warnLogger.SetNextLogger(infoLogger);
|
||||||
|
infoLogger.SetNextLogger(verboseLogger);
|
||||||
|
verboseLogger.SetNextLogger(debugLogger);
|
||||||
|
LogChain = fatalLogger;
|
||||||
|
}
|
||||||
|
}
|
||||||
28
Logger/VerboseLogger.cs
Normal file
28
Logger/VerboseLogger.cs
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
using Debugger;
|
||||||
|
using Lagrange.Core.Common.Interface.Api;
|
||||||
|
using Lagrange.Core.Message;
|
||||||
|
using Shrink.Service;
|
||||||
|
|
||||||
|
namespace Shrink.Logger;
|
||||||
|
|
||||||
|
public class VerboseLogger : AbstractLogger
|
||||||
|
{
|
||||||
|
public VerboseLogger(LogLevel level)
|
||||||
|
{
|
||||||
|
LogLevel = level;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void Log(string data, string eventName, MsgType msgType, uint uin, string message)
|
||||||
|
{
|
||||||
|
if (msgType == MsgType.Public)
|
||||||
|
{
|
||||||
|
var chain = MessageBuilder.Group(uin).Text($"[{data}] [{eventName}] [Verbose] {message}");
|
||||||
|
BotService.Instance.Client!.SendMessage(chain.Build());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var chain = MessageBuilder.Friend(uin).Text($"[{data}] [{eventName}] [Verbose] {message}");
|
||||||
|
BotService.Instance.Client!.SendMessage(chain.Build());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
28
Logger/WarnLogger.cs
Normal file
28
Logger/WarnLogger.cs
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
using Debugger;
|
||||||
|
using Lagrange.Core.Common.Interface.Api;
|
||||||
|
using Lagrange.Core.Message;
|
||||||
|
using Shrink.Service;
|
||||||
|
|
||||||
|
namespace Shrink.Logger;
|
||||||
|
|
||||||
|
public class WarnLogger : AbstractLogger
|
||||||
|
{
|
||||||
|
public WarnLogger(LogLevel level)
|
||||||
|
{
|
||||||
|
LogLevel = level;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void Log(string data, string eventName, MsgType msgType, uint uin, string message)
|
||||||
|
{
|
||||||
|
if (msgType == MsgType.Public)
|
||||||
|
{
|
||||||
|
var chain = MessageBuilder.Group(uin).Text($"[{data}] [{eventName}] [Warn] {message}");
|
||||||
|
BotService.Instance.Client!.SendMessage(chain.Build());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var chain = MessageBuilder.Friend(uin).Text($"[{data}] [{eventName}] [Warn] {message}");
|
||||||
|
BotService.Instance.Client!.SendMessage(chain.Build());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user