Skip to content

Commit f7e4fca

Browse files
Improve dump strategy
1 parent 518eec8 commit f7e4fca

2 files changed

Lines changed: 24 additions & 9 deletions

File tree

src/Dotnet6.GraphQL4.Store.WebAPI/DependencyInjection/Extensions/EndpointRouteBuilderExtensions.cs

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
using System;
22
using System.Linq;
3+
using System.Threading.Tasks;
34
using HealthChecks.UI.Client;
45
using Microsoft.AspNetCore.Builder;
56
using Microsoft.AspNetCore.Http;
67
using Microsoft.AspNetCore.Routing;
78
using Microsoft.Extensions.Configuration;
89
using Microsoft.Extensions.Diagnostics.HealthChecks;
10+
using Microsoft.Extensions.Logging;
911

1012
namespace Dotnet6.GraphQL4.Store.WebAPI.DependencyInjection.Extensions
1113
{
@@ -50,16 +52,26 @@ private static void MapHealthChecks(this IEndpointRouteBuilder endpoints, string
5052
}
5153
});
5254

53-
public static void MapDumpConfig(this IEndpointRouteBuilder endpoints, string pattern, IConfigurationRoot configurationRoot, bool isProduction)
55+
public static void MapDumpConfig(this IEndpointRouteBuilder endpoints, string pattern, IConfigurationRoot configurationRoot, bool isProduction, ILogger logger)
5456
{
55-
if (isProduction) return;
56-
5757
endpoints.MapGet(
58-
pattern: pattern,
58+
pattern: pattern,
5959
requestDelegate: context
60-
=> context.Response.WriteAsync(
61-
text: configurationRoot.GetDebugView(),
62-
cancellationToken: context.RequestAborted));
60+
=> isProduction ? DumpToLog(context) : DumpToResponse(context));
61+
62+
Task DumpToResponse(HttpContext context)
63+
=> context.Response.WriteAsync(
64+
text: configurationRoot.GetDebugView(),
65+
cancellationToken: context.RequestAborted);
66+
67+
Task DumpToLog(HttpContext context)
68+
{
69+
logger.LogInformation("{Settings}", configurationRoot.GetDebugView());
70+
71+
return context.Response.WriteAsync(
72+
text: "Configuration dumped successfully",
73+
cancellationToken: context.RequestAborted);
74+
}
6375
}
6476
}
6577
}

src/Dotnet6.GraphQL4.Store.WebAPI/Startup.cs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,8 @@ public void Configure(IApplicationBuilder app , ILoggerFactory loggerFactory)
5050
endpoints.MapDumpConfig(
5151
pattern: "/dump-config",
5252
configurationRoot: _configuration as IConfigurationRoot,
53-
isProduction: _env.IsProduction());
53+
isProduction: _env.IsProduction(),
54+
logger: loggerFactory.CreateLogger<Startup>());
5455

5556
endpoints.MapHealthCheck(
5657
pattern: _configuration["HealthChecksPatterns:Health"]);
@@ -74,8 +75,10 @@ public void ConfigureServices(IServiceCollection services)
7475
services.AddHttpLogging(options
7576
=> options.LoggingFields = HttpLoggingFields.RequestProperties);
7677

78+
services.AddLogging(builder
79+
=> builder.AddSerilog());
80+
7781
services
78-
.AddLogging()
7982
.AddBuilders()
8083
.AddRepositories()
8184
.AddUnitOfWork()

0 commit comments

Comments
 (0)