From 42aa229f506b9342b6e115fe13bc7e662230b4f0 Mon Sep 17 00:00:00 2001 From: Zdenek Havlin Date: Tue, 28 Jan 2025 22:26:50 +0100 Subject: [PATCH] Instead of creating logger once, create before every fetch (allow hacking in different logger factory instance) --- .../SecretsManagerConfigurationProvider.cs | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/W4k.Extensions.Configuration.Aws.SecretsManager/SecretsManagerConfigurationProvider.cs b/src/W4k.Extensions.Configuration.Aws.SecretsManager/SecretsManagerConfigurationProvider.cs index 24290e5..106562a 100644 --- a/src/W4k.Extensions.Configuration.Aws.SecretsManager/SecretsManagerConfigurationProvider.cs +++ b/src/W4k.Extensions.Configuration.Aws.SecretsManager/SecretsManagerConfigurationProvider.cs @@ -12,7 +12,6 @@ namespace W4k.Extensions.Configuration.Aws.SecretsManager; public sealed class SecretsManagerConfigurationProvider : ConfigurationProvider, ISecretsManagerConfigurationProvider { private readonly SecretFetcher _secretFetcher; - private readonly ILogger _logger; private int _reloadInProgress; private string? _currentSecretVersionId; @@ -26,8 +25,6 @@ public SecretsManagerConfigurationProvider(SecretsManagerConfigurationSource sou ArgumentNullException.ThrowIfNull(source); _secretFetcher = new SecretFetcher(source.SecretsManager); - _logger = source.LoggerFactory.CreateLogger(); - Source = source; } @@ -47,6 +44,8 @@ public override void Load() var secretProcessor = Source.Processor; var watcher = Source.ConfigurationWatcher; + var logger = Source.LoggerFactory.CreateLogger(); + using var activity = ActivityDescriptors.Source.StartActivity(ActivityDescriptors.LoadActivityName); try { @@ -64,7 +63,7 @@ public override void Load() .AddEvent(new ActivityEvent("loaded")) .SetStatus(ActivityStatusCode.Ok, "Secret loaded"); - _logger.SecretLoaded(secretName, secret.VersionId); + logger.SecretLoaded(secretName, secret.VersionId); // requires initial load to succeed (even when secret is optional) watcher?.StartWatching(this); @@ -81,7 +80,7 @@ public override void Load() .SetStatus(ActivityStatusCode.Error, "Error loading secret"); #endif - _logger.FailedToLoadSecret(ex, secretName); + logger.FailedToLoadSecret(ex, secretName); HandleException(ex, Source.OnLoadException); } } @@ -98,6 +97,8 @@ public void Reload() var secretVersion = Source.Version; var secretProcessor = Source.Processor; + var logger = Source.LoggerFactory.CreateLogger(); + using var activity = ActivityDescriptors.Source.StartActivity(ActivityDescriptors.ReloadActivityName); try { @@ -113,7 +114,7 @@ public void Reload() .AddEvent(new ActivityEvent("skipped")) .SetStatus(ActivityStatusCode.Ok, "Secret up-to-date"); - _logger.SecretAlreadyLoaded(secretName, secret.VersionId); + logger.SecretAlreadyLoaded(secretName, secret.VersionId); return; } @@ -126,7 +127,7 @@ public void Reload() .AddEvent(new ActivityEvent("reloaded")) .SetStatus(ActivityStatusCode.Ok, "Secret reloaded"); - _logger.SecretRefreshed(secretName, previousVersionId ?? "N/A", secret.VersionId); + logger.SecretRefreshed(secretName, previousVersionId ?? "N/A", secret.VersionId); } catch (Exception ex) { @@ -140,7 +141,7 @@ public void Reload() .SetStatus(ActivityStatusCode.Error, "Error reloading secret"); #endif - _logger.FailedToRefreshSecret(ex, secretName); + logger.FailedToRefreshSecret(ex, secretName); HandleException(ex, Source.OnReloadException); } finally