From 2f14ad3cc01d575bfde0850bae05fded8acb7af6 Mon Sep 17 00:00:00 2001 From: wangxinhui <wangxinhui@hnkhzn.com> Date: 星期日, 12 一月 2025 00:20:26 +0800 Subject: [PATCH] Merge branch 'master' of http://115.159.85.185:8098/r/MeiRuiAn/HuaiAn --- 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_Core/Middlewares/ApiLogMiddleware.cs | 97 ++++++++++++++++++++++-------------------------- 1 files changed, 44 insertions(+), 53 deletions(-) diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Core/Middlewares/ApiLogMiddleware.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Core/Middlewares/ApiLogMiddleware.cs" index ee5bdd9..90d7b6e 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Core/Middlewares/ApiLogMiddleware.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Core/Middlewares/ApiLogMiddleware.cs" @@ -1,6 +1,7 @@ 锘縰sing Microsoft.AspNetCore.Http; using Microsoft.Extensions.Logging; using Newtonsoft.Json; +using Org.BouncyCastle.Asn1.Ocsp; using System; using System.Collections.Generic; using System.Linq; @@ -22,7 +23,7 @@ /// </summary> private readonly RequestDelegate _next; - public ApiLogMiddleware(RequestDelegate next) + public ApiLogMiddleware(RequestDelegate next, ILogger<ApiLogMiddleware> logger) { _next = next; } @@ -35,13 +36,15 @@ { context.Request.EnableBuffering(); Stream originalBody = context.Response.Body; - + string requestParam = string.Empty; + string responseParam = string.Empty; try { + (context.RequestServices.GetService(typeof(RequestLogModel)) as RequestLogModel).RequestDate = DateTime.Now; try { // 瀛樺偍璇锋眰鏁版嵁 - await RequestDataLog(context); + requestParam = RequestDataLog(context); context.Request.Body.Position = 0; } catch { } @@ -53,18 +56,19 @@ try { // 瀛樺偍鍝嶅簲鏁版嵁 - ResponseDataLog(context.Response, ms); + responseParam = ResponseDataLog(context.Response); } catch { } ms.Position = 0; await ms.CopyToAsync(originalBody); - + if (!((context.Request.Path.Value?.Contains("get")) ?? true) && !((context.Request.Path.Value?.Contains("Get")) ?? true) && !((context.Request.Path.Value?.Contains("query")) ?? true) && !((context.Request.Path.Value?.Contains("Query")) ?? true) && !((context.Request.Path.Value?.Contains("DownLoadApp")) ?? true) && !((context.Request.Path.Value?.Contains("downLoadApp")) ?? true) && !((context.Request.Path.Value?.Contains("UploadApp")) ?? true) && !((context.Request.Path.Value?.Contains("uploadApp")) ?? true)) + Logger.Add(requestParam, responseParam); } catch (Exception ex) { // 璁板綍寮傚父 - + } finally { @@ -77,61 +81,48 @@ } } - - private async Task RequestDataLog(HttpContext context) + private string RequestDataLog(HttpContext context) { var request = context.Request; + var sr = new StreamReader(request.Body); - //long length = request.Body.Length; - RequestLogInfo requestResponse = new RequestLogInfo() - { - Path = request.Path, - QueryString = request.QueryString.ToString(), - BodyData = await sr.ReadToEndAsync() - }; - var content = JsonConvert.SerializeObject(requestResponse); - if (!string.IsNullOrEmpty(content)) - { - LogLock.OutLogAOP("鎺ュ彛鏃ュ織", new string[] { "璇锋眰鏁版嵁 - 璇锋眰鏁版嵁绫诲瀷:" + requestResponse.GetType().ToString(), content }); - request.Body.Position = 0; - } - } - private void ResponseDataLog(HttpResponse response, MemoryStream ms) - { - ms.Position = 0; - var responseBody = new StreamReader(ms).ReadToEnd(); - - // 鍘婚櫎 Html - var reg = "<[^>]+>"; - var isHtml = Regex.IsMatch(responseBody, reg); - - if (!string.IsNullOrEmpty(responseBody)) + object obj; + string bodyData = sr.ReadToEndAsync().Result; + if (request.ContentLength <= 100000) { - Parallel.For(0, 1, e => + obj = new { - LogLock.OutLogAOP("鎺ュ彛鏃ュ織", new string[] { "鍝嶅簲鏁版嵁 - 鍝嶅簲鏁版嵁绫诲瀷:" + responseBody.GetType().ToString(), responseBody }); - - }); + QueryString = request.QueryString.ToString(), + BodyData = bodyData + }; } + else + { + obj = new + { + QueryString = request.QueryString.ToString(), + BodyData = "" + }; + } + string data = JsonConvert.SerializeObject(obj); + + request.Body.Position = 0; + + return data; ; } - } - public class RequestLogInfo - { - /// <summary> - /// 璇锋眰鍦板潃 - /// </summary> - public string Path { get; set; } - - /// <summary> - /// 璇锋眰鍙傛暟 - /// </summary> - public string QueryString { get; set; } - - /// <summary> - /// Body鍙傛暟 - /// </summary> - public string BodyData { get; set; } + private string ResponseDataLog(HttpResponse response) + { + if (response.ContentLength <= 100000) + { + response.Body.Position = 0; + using StreamReader stream = new StreamReader(response.Body, leaveOpen: true); + string body = stream.ReadToEnd(); + response.Body.Position = 0; + return body; + } + return ""; + } } } -- Gitblit v1.9.3