diff --git a/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerProvider.cs b/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerProvider.cs index 7a8f61301b475..adbe3b51c6555 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerProvider.cs +++ b/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerProvider.cs @@ -133,20 +133,24 @@ public ILogger CreateLogger(string name) ConsoleLoggerFormat.Systemd => _formatters[ConsoleFormatterNames.Systemd], _ => _formatters[ConsoleFormatterNames.Simple], }; +#pragma warning restore CS0618 + if (_options.CurrentValue.FormatterName == null) { UpdateFormatterOptions(logFormatter, _options.CurrentValue); } -#pragma warning restore CS0618 } - return _loggers.GetOrAdd(name, loggerName => new ConsoleLogger(name, _messageQueue) - { - Options = _options.CurrentValue, - ScopeProvider = _scopeProvider, - Formatter = logFormatter, - }); + return _loggers.TryGetValue(name, out ConsoleLogger logger) ? + logger : + _loggers.GetOrAdd(name, new ConsoleLogger(name, _messageQueue) + { + Options = _options.CurrentValue, + ScopeProvider = _scopeProvider, + Formatter = logFormatter, + }); } + #pragma warning disable CS0618 private void UpdateFormatterOptions(ConsoleFormatter formatter, ConsoleLoggerOptions deprecatedFromOptions) {