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;
 }
Beispiel #3
0
 public AnsiConsoleWriter(AnsiConsoleLoggerProcessor queueProcessor)
 {
     _queueProcessor = queueProcessor;
 }