From 0fb0f17319ecf71d66b96a6acfd07f754be9443e Mon Sep 17 00:00:00 2001
From: dengjunjie <dengjunjie@hnkhzn.com>
Date: 星期四, 24 十月 2024 13:44:38 +0800
Subject: [PATCH] WCS添加穿梭车信息表,修改任务信息表
---
项目代码/WMS/WIDESEA_WMSServer/WIDESEA_Core/Middlewares/ApiLogMiddleware.cs | 144 ++++++++++++++++++++++++++++--------------------
1 files changed, 84 insertions(+), 60 deletions(-)
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Core/Middlewares/ApiLogMiddleware.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Core/Middlewares/ApiLogMiddleware.cs"
index ee5aea4..ee5bdd9 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Core/Middlewares/ApiLogMiddleware.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Core/Middlewares/ApiLogMiddleware.cs"
@@ -5,6 +5,7 @@
using System.Collections.Generic;
using System.Linq;
using System.Text;
+using System.Text.RegularExpressions;
using System.Threading.Tasks;
using WIDESEA_Core.Helper;
using WIDESEA_Core.LogHelper;
@@ -20,94 +21,117 @@
///
/// </summary>
private readonly RequestDelegate _next;
- private readonly ILogger<ApiLogMiddleware> _logger;
- public ApiLogMiddleware(RequestDelegate next, ILogger<ApiLogMiddleware> logger)
+ public ApiLogMiddleware(RequestDelegate next)
{
_next = next;
- _logger = logger;
}
//todo
public async Task InvokeAsync(HttpContext context)
{
- //if (AppSettings.app("Middleware", "RequestResponseLog", "Enabled").ObjToBool())
+ // 杩囨护锛屽彧鏈夋帴鍙�
+ if (context.Request.Path.Value?.Contains("api") ?? false)
{
- // 杩囨护锛屽彧鏈夋帴鍙�
- if (context.Request.Path.Value.Contains("api"))
- {
- context.Request.EnableBuffering();
- //Stream originalBody = context.Response.Body;
+ context.Request.EnableBuffering();
+ Stream originalBody = context.Response.Body;
+ try
+ {
try
{
// 瀛樺偍璇锋眰鏁版嵁
- //string requestParam = GetRequestData(context);
- //DateTime beginDate = DateTime.Now;
+ await RequestDataLog(context);
+ context.Request.Body.Position = 0;
+ }
+ catch { }
+ using MemoryStream ms = new();
+ context.Response.Body = ms;
- //using var ms = new MemoryStream();
- //context.Response.Body = ms;
+ await _next(context);
- await _next(context);
-
+ try
+ {
// 瀛樺偍鍝嶅簲鏁版嵁
- //DateTime endDate = DateTime.Now;
- //string responseParam = GetResponsetData(context);
+ ResponseDataLog(context.Response, ms);
+ }
+ catch { }
- //context.Response.Body.Position = 0;
- //await context.Response.Body.CopyToAsync(originalBody);
+ ms.Position = 0;
+ await ms.CopyToAsync(originalBody);
- //Logger.WriteApiLog2DB(context,requestParam, beginDate, responseParam, endDate, context.Response.StatusCode == 200 ? LoggerStatus.Success : LoggerStatus.Error);
- }
- catch (Exception ex)
- {
- // 璁板綍寮傚父
- _logger.LogError(ex.Message + "" + ex.InnerException);
- }
- finally
- {
- //context.Response.Body = originalBody;
- }
}
- //else
- //{
- // await _next(context);
- //}
+ catch (Exception ex)
+ {
+ // 璁板綍寮傚父
+
+ }
+ finally
+ {
+ context.Response.Body = originalBody;
+ }
}
- //else
- //{
- // await _next(context);
- //}
- }
-
- private string GetRequestData(HttpContext context)
- {
- try
+ else
{
- using StreamReader sr = new StreamReader(context.Request.Body);
- string request = JsonConvert.SerializeObject(sr.ReadToEnd()); ;
- context.Request.Body.Position = 0;
- return request;
- }
- catch (Exception ex)
- {
- return $"璇锋眰鍙傛暟鑾峰彇閿欒,{ex.Message}";
+ await _next(context);
}
}
- private string GetResponsetData(HttpContext context)
+
+ private async Task RequestDataLog(HttpContext context)
{
- try
+ var request = context.Request;
+ var sr = new StreamReader(request.Body);
+ //long length = request.Body.Length;
+ RequestLogInfo requestResponse = new RequestLogInfo()
{
- using StreamReader sr = new StreamReader(context.Response.Body);
- string response = JsonConvert.SerializeObject(sr.ReadToEnd()); ;
- context.Response.Body.Position = 0;
- return response;
- }
- catch (Exception ex)
+ Path = request.Path,
+ QueryString = request.QueryString.ToString(),
+ BodyData = await sr.ReadToEndAsync()
+ };
+ var content = JsonConvert.SerializeObject(requestResponse);
+ if (!string.IsNullOrEmpty(content))
{
- return $"鍝嶅簲鍙傛暟鑾峰彇閿欒,{ex.Message}";
+ 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))
+ {
+ Parallel.For(0, 1, e =>
+ {
+ LogLock.OutLogAOP("鎺ュ彛鏃ュ織", new string[] { "鍝嶅簲鏁版嵁 - 鍝嶅簲鏁版嵁绫诲瀷:" + responseBody.GetType().ToString(), responseBody });
+
+ });
+ }
+ }
+ }
+
+ 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