使用责任链编写Logger

Signed-off-by: Eicy <im@crash.work>
This commit is contained in:
2024-12-21 01:02:31 +08:00
parent f05dce81a0
commit 7bacff5e24
8 changed files with 229 additions and 0 deletions

28
Logger/LogManager.cs Normal file
View 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;
}
}