/// <summary> /// /// </summary> /// <param name="context"></param> /// <returns></returns> private async Task LogRequest(HttpContext context) { context.Request.EnableBuffering(); await using var requestStream = _recyclableMemoryStreamManager.GetStream(); await context.Request.Body.CopyToAsync(requestStream); apiLogModel = new APILogHistory() { Id = Guid.NewGuid(), Method = context.Request.Method, Schema = context.Request.Scheme, Host = context.Request.Host.ToString(), Path = context.Request.Path, QueryString = context.Request.QueryString.ToString(), RequestBody = ReadStreamInChunks(requestStream) }; //_logger.LogInformation($"Http Request Information:{Environment.NewLine}" + // $"Method:{context.Request.Method} " + // $"Schema:{context.Request.Scheme} " + // $"Host: {context.Request.Host} " + // $"Path: {context.Request.Path} " + // $"QueryString: {context.Request.QueryString} " + // $"Request Body: {ReadStreamInChunks(requestStream)}"); context.Request.Body.Position = 0; }
public RequestResponseLoggingMiddleware(RequestDelegate next, ILoggerFactory loggerFactory, IWebHostEnvironment environment) { _next = next; _logger = loggerFactory.CreateLogger <RequestResponseLoggingMiddleware>(); _recyclableMemoryStreamManager = new RecyclableMemoryStreamManager(); _environment = environment; apiLogModel = new APILogHistory(); }