From 18d1f45193e34e00fc1b6f65b8596ddb29c5267d Mon Sep 17 00:00:00 2001
From: dengjunjie <dengjunjie@hnkhzn.com>
Date: 星期二, 24 十二月 2024 15:32:43 +0800
Subject: [PATCH] Merge branch 'master' of http://115.159.85.185:8098/r/MeiRuiAn/HuaiAn

---
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_Core/Middlewares/ApiLogMiddleware.cs |   77 ++++++++++++--------------------------
 1 files changed, 25 insertions(+), 52 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..fbbfef0 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"
@@ -22,7 +22,7 @@
         /// </summary>
         private readonly RequestDelegate _next;
 
-        public ApiLogMiddleware(RequestDelegate next)
+        public ApiLogMiddleware(RequestDelegate next, ILogger<ApiLogMiddleware> logger)
         {
             _next = next;
         }
@@ -35,13 +35,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 +55,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))
+                        Logger.Add(requestParam, responseParam);
                 }
                 catch (Exception ex)
                 {
                     // 璁板綍寮傚父
-                    
+
                 }
                 finally
                 {
@@ -77,61 +80,31 @@
             }
         }
 
-
-        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()
+
+            object obj = new
             {
-                Path = request.Path,
                 QueryString = request.QueryString.ToString(),
-                BodyData = await sr.ReadToEndAsync()
+                BodyData = sr.ReadToEndAsync().Result
             };
-            var content = JsonConvert.SerializeObject(requestResponse);
-            if (!string.IsNullOrEmpty(content))
-            {
-                LogLock.OutLogAOP("鎺ュ彛鏃ュ織", new string[] { "璇锋眰鏁版嵁 -  璇锋眰鏁版嵁绫诲瀷:" + requestResponse.GetType().ToString(), content });
-                request.Body.Position = 0;
-            }
+
+            string data = JsonConvert.SerializeObject(obj);
+
+            request.Body.Position = 0;
+
+            return data;
         }
 
-        private void ResponseDataLog(HttpResponse response, MemoryStream ms)
+        private string ResponseDataLog(HttpResponse response)
         {
-            ms.Position = 0;
-            var responseBody = new StreamReader(ms).ReadToEnd();
-
-            // 鍘婚櫎 Html
-            var reg = "<[^>]+>";
-            var isHtml = Regex.IsMatch(responseBody, reg);
-
-            if (!string.IsNullOrEmpty(responseBody))
-            {
-                Parallel.For(0, 1, e =>
-                {
-                    LogLock.OutLogAOP("鎺ュ彛鏃ュ織", new string[] { "鍝嶅簲鏁版嵁 -  鍝嶅簲鏁版嵁绫诲瀷:" + responseBody.GetType().ToString(), responseBody });
-
-                });
-            }
+            response.Body.Position = 0;
+            using StreamReader stream = new StreamReader(response.Body, leaveOpen: true);
+            string body = stream.ReadToEnd();
+            response.Body.Position = 0;
+            return body;
         }
-    }
-
-    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; }
     }
 }

--
Gitblit v1.9.3