From 451586d3c92116f43ca8f6a44e5d7be78956192c Mon Sep 17 00:00:00 2001 From: Stephen Toub Date: Wed, 25 Nov 2020 16:41:53 -0500 Subject: [PATCH 1/2] Remove closure/delegate allocation from ConsoleLoggerProvider.CreateLogger --- .../src/ConsoleLoggerProvider.cs | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerProvider.cs b/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerProvider.cs index 7a8f61301b4753..ec781281d78945 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerProvider.cs +++ b/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerProvider.cs @@ -133,21 +133,25 @@ 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) { // kept for deprecated apis: From 349ec7b19a6720f5d8cf99dfcd594f22e557aa02 Mon Sep 17 00:00:00 2001 From: Jan Kotas Date: Thu, 26 Nov 2020 00:46:24 -0800 Subject: [PATCH 2/2] Update src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerProvider.cs --- .../src/ConsoleLoggerProvider.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerProvider.cs b/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerProvider.cs index ec781281d78945..adbe3b51c6555f 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerProvider.cs +++ b/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerProvider.cs @@ -150,8 +150,8 @@ public ILogger CreateLogger(string name) Formatter = logFormatter, }); } -#pragma warning disable CS0618 +#pragma warning disable CS0618 private void UpdateFormatterOptions(ConsoleFormatter formatter, ConsoleLoggerOptions deprecatedFromOptions) { // kept for deprecated apis: