using Debugger; namespace Shrink.Logger; public class LogManager { private static readonly Lazy _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; } }