1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- 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============================================================");
- foreach (var headerKey in response.Headers.Keys)
- {
- logger.LogInformation("{id} {key} {value}", traceIdentifier, headerKey, response.Headers[headerKey]);
- }
- logger.LogInformation("LogResponse============================================================");
- }
- }
- }
|