From b3af9541a251b7673a0c669c2bae7617478a25fd Mon Sep 17 00:00:00 2001 From: waldekmastykarz Date: Mon, 6 May 2024 17:07:53 +0200 Subject: [PATCH 1/3] Refactors IProxyLogger to ILogger --- dev-proxy-abstractions/BaseProxyPlugin.cs | 32 +- dev-proxy-abstractions/ILoggerExtensions.cs | 22 + dev-proxy-abstractions/IProxyLogger.cs | 1 + dev-proxy-abstractions/IProxyPlugin.cs | 6 +- dev-proxy-abstractions/MSGraphDbUtils.cs | 10 +- dev-proxy-abstractions/PluginEvents.cs | 28 +- .../RateLimitingCustomResponseLoader.cs | 4 +- .../Behavior/RateLimitingPlugin.cs | 34 +- .../Behavior/RetryAfterPlugin.cs | 20 +- .../Guidance/CachingGuidancePlugin.cs | 22 +- .../GraphBetaSupportGuidancePlugin.cs | 22 +- .../GraphClientRequestIdGuidancePlugin.cs | 22 +- .../Guidance/GraphConnectorGuidancePlugin.cs | 25 +- .../Guidance/GraphSdkGuidancePlugin.cs | 20 +- .../Guidance/GraphSelectGuidancePlugin.cs | 27 +- .../Guidance/ODSPSearchGuidancePlugin.cs | 20 +- .../Guidance/ODataPagingGuidancePlugin.cs | 31 +- .../Inspection/DevToolsPlugin.cs | 23 +- .../Inspection/WebSocketServer.cs | 13 +- .../Mocks/CrudApiDefinitionLoader.cs | 4 +- dev-proxy-plugins/Mocks/CrudApiPlugin.cs | 75 ++-- .../Mocks/EntraMockResponsePlugin.cs | 13 +- .../Mocks/GraphConnectorNotificationPlugin.cs | 44 +- .../Mocks/GraphMockResponsePlugin.cs | 13 +- dev-proxy-plugins/Mocks/MockRequestLoader.cs | 4 +- dev-proxy-plugins/Mocks/MockRequestPlugin.cs | 31 +- dev-proxy-plugins/Mocks/MockResponsePlugin.cs | 32 +- .../Mocks/MockResponsesLoader.cs | 4 +- .../GenericErrorResponsesLoader.cs | 4 +- .../RandomErrors/GenericRandomErrorPlugin.cs | 42 +- .../RandomErrors/GraphRandomErrorPlugin.cs | 38 +- .../RandomErrors/LatencyPlugin.cs | 23 +- .../RequestLogs/ApiCenterOnboardingPlugin.cs | 139 +++--- .../ApiCenterProductionVersionPlugin.cs | 83 ++-- .../RequestLogs/ExecutionSummaryPlugin.cs | 18 +- .../MinimalPermissionsGuidancePlugin.cs | 19 +- .../RequestLogs/MinimalPermissionsPlugin.cs | 32 +- .../RequestLogs/MockGeneratorPlugin.cs | 53 +-- .../RequestLogs/OpenApiSpecGeneratorPlugin.cs | 123 +++--- dev-proxy/CertificateDiskCache.cs | 3 + dev-proxy/ConsoleLogger.cs | 380 ----------------- dev-proxy/Logging/ILoggerBuilderExtensions.cs | 21 + dev-proxy/Logging/ProxyConsoleFormatter.cs | 397 ++++++++++++++++++ .../Logging/ProxyConsoleFormatterOptions.cs | 12 + dev-proxy/Logging/RequestLogger.cs | 29 ++ dev-proxy/Logging/RequestLoggerProvider.cs | 25 ++ dev-proxy/Logging/TextWriterExtensions.cs | 16 + dev-proxy/MSGraphDbCommandHandler.cs | 5 +- dev-proxy/PluginLoader.cs | 23 +- dev-proxy/PresetGetCommandHandler.cs | 8 +- dev-proxy/Program.cs | 33 +- dev-proxy/ProxyCommandHandler.cs | 9 +- dev-proxy/ProxyContext.cs | 4 +- dev-proxy/ProxyEngine.cs | 6 +- dev-proxy/ProxyHost.cs | 5 +- dev-proxy/dev-proxy.csproj | 1 + 56 files changed, 1185 insertions(+), 968 deletions(-) create mode 100644 dev-proxy-abstractions/ILoggerExtensions.cs delete mode 100644 dev-proxy/ConsoleLogger.cs create mode 100644 dev-proxy/Logging/ILoggerBuilderExtensions.cs create mode 100644 dev-proxy/Logging/ProxyConsoleFormatter.cs create mode 100644 dev-proxy/Logging/ProxyConsoleFormatterOptions.cs create mode 100644 dev-proxy/Logging/RequestLogger.cs create mode 100644 dev-proxy/Logging/RequestLoggerProvider.cs create mode 100644 dev-proxy/Logging/TextWriterExtensions.cs diff --git a/dev-proxy-abstractions/BaseProxyPlugin.cs b/dev-proxy-abstractions/BaseProxyPlugin.cs index 49978aad..0eadb1e7 100644 --- a/dev-proxy-abstractions/BaseProxyPlugin.cs +++ b/dev-proxy-abstractions/BaseProxyPlugin.cs @@ -3,21 +3,26 @@ using System.CommandLine; using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.Logging; namespace Microsoft.DevProxy.Abstractions; public abstract class BaseProxyPlugin : IProxyPlugin { - protected ISet? _urlsToWatch; - protected IProxyLogger? _logger; + protected ISet UrlsToWatch { get; } + protected ILogger Logger { get; } + protected IConfigurationSection? ConfigSection { get; } + protected IPluginEvents PluginEvents { get; } + protected IProxyContext Context { get; } public virtual string Name => throw new NotImplementedException(); public virtual Option[] GetOptions() => Array.Empty