public AnsiConsoleLoggerProvider(IOptionsMonitor <AnsiConsoleLoggerOptions> options, IEnumerable <IConsoleFormatter> formatters) { _options = options; _loggers = new ConcurrentDictionary <string, AnsiConsoleLogger>(); SetFormatters(formatters); ReloadLoggerOptions(options.CurrentValue); _optionsReloadToken = _options.OnChange(ReloadLoggerOptions); _messageQueue = new AnsiConsoleLoggerProcessor(_options.CurrentValue.TimeoutDuration); if (!Is4BitColorMode() && DoesConsoleSupportAnsi()) { _messageQueue.console = new AnsiLogConsole(); _messageQueue.errorConsole = new AnsiLogConsole(true); } else { _messageQueue.console = new AnsiParsingLogConsole(); _messageQueue.errorConsole = new AnsiParsingLogConsole(true); Warn4Bit(); } if (options.CurrentValue.AddConsoleWriter) { consoleWriter = new AnsiConsoleWriter(_messageQueue); } }
internal AnsiConsoleLogger(string name, AnsiConsoleLoggerProcessor loggerProcessor) { _name = name ?? throw new ArgumentNullException(nameof(name)); _queueProcessor = loggerProcessor; }
public AnsiConsoleWriter(AnsiConsoleLoggerProcessor queueProcessor) { _queueProcessor = queueProcessor; }