public static IWebHostBuilder PrepareLoggingProxy(this IWebHostBuilder hostBuilder)
        {
            var minSeverityStr = (Environment.GetEnvironmentVariable("logging:minSeverity") ?? "debugging").Trim().ToLowerInvariant();
            var minSeverity    = LoggingSeverity.Debugging;

            try
            {
                minSeverity = Enum.Parse <LoggingSeverity>(minSeverityStr, true);
            }
            catch
            {
            }
            var loggingAdapter = new LoggingPlatformAdapter().SetMinSeverity(minSeverity);

            hostBuilder.ConfigureServices(collection =>
            {
                collection.AddSingleton <ILoggingServiceProxy>(loggingAdapter);
            });
            hostBuilder.ConfigureLogging(logging =>
            {
                logging.ClearProviders();
                logging.AddFilter("Microsoft", LogLevel.Warning);
                logging.AddFilter("System", LogLevel.Warning);
                logging.AddProvider(loggingAdapter);
            });
            return(hostBuilder);
        }
 public PlatformLoggerAdapter(LoggingPlatformAdapter loggingPlatformAdapter, string categoryName)
 {
     this.loggingPlatformAdapter = loggingPlatformAdapter;
     this.categoryName           = categoryName;
 }