123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- using Azure.Core;
- using HeaderRecord;
- using Microsoft.AspNetCore.Builder;
- using Microsoft.AspNetCore.Http;
- using Microsoft.Extensions.DependencyInjection;
- using Microsoft.Extensions.Logging;
- using System.Net.Http;
- namespace EVCB_OCPP.Service
- {
- public static partial class AppExtention
- {
- public static void AddHeaderRecordService(this IServiceCollection services)
- {
- services.AddTransient<HeaderRecordService>();
- }
- public static void UseHeaderRecordService(this WebApplication webApplication)
- {
- webApplication.Use(async (context, next) =>
- {
- var servcie = context.RequestServices.GetService<HeaderRecordService>();
- servcie.LogRequest(context.TraceIdentifier, context.Request);
- await next(context);
- servcie.LogResponse(context.TraceIdentifier, context.Response);
- return;
- });
- }
- }
- }
- namespace HeaderRecord
- {
- public class HeaderRecordService
- {
- private readonly ILogger<HeaderRecordService> logger;
- public HeaderRecordService(ILogger<HeaderRecordService> logger)
- {
- this.logger = logger;
- }
- internal void LogRequest(string traceIdentifier, HttpRequest request)
- {
- logger.LogInformation("LogRequest============================================================");
- logger.LogInformation("{id} {method} {path} {protocol}", traceIdentifier, request.Method, request.Path, request.Protocol);
- foreach (var headerKey in request.Headers.Keys)
- {
- logger.LogInformation("{id} {key} {value}", traceIdentifier, headerKey, request.Headers[headerKey]);
- }
- logger.LogInformation("LogRequest============================================================");
- }
- internal void LogResponse(string traceIdentifier, HttpResponse response)
- {
- logger.LogInformation("LogResponse============================================================");
- logger.LogInformation("{id} {key} {value}", traceIdentifier, "statuscode", response.StatusCode);
- foreach (var headerKey in response.Headers.Keys)
- {
- logger.LogInformation("{id} {key} {value}", traceIdentifier, headerKey, response.Headers[headerKey]);
- }
- logger.LogInformation("LogResponse============================================================");
- }
- }
- }
|