internal PdmConsoleLogger(string name, PdmConsoleLoggerProcessor loggerProcessor) { if (name == null) { throw new ArgumentNullException(nameof(name)); } _name = name; _queueProcessor = loggerProcessor; }
/// <summary> /// Creates an instance of <see cref="ConsoleLoggerProvider"/>. /// </summary> /// <param name="options">The options to create <see cref="ConsoleLogger"/> instances with.</param> public PdmConsoleLoggerProvider(IOptionsMonitor <PdmConsoleLoggerOptions> options) { _options = options; _loggers = new ConcurrentDictionary <string, PdmConsoleLogger>(); ReloadLoggerOptions(options.CurrentValue); _optionsReloadToken = _options.OnChange(ReloadLoggerOptions); _messageQueue = new PdmConsoleLoggerProcessor(); if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) { _messageQueue.Console = new WindowsLogConsole(); _messageQueue.ErrorConsole = new WindowsLogConsole(stdErr: true); } else { _messageQueue.Console = new AnsiLogConsole(new AnsiSystemConsole()); _messageQueue.ErrorConsole = new AnsiLogConsole(new AnsiSystemConsole(stdErr: true)); } }