From 29cd467ba62b2bdf49c6546e78ae3ec809c4a723 Mon Sep 17 00:00:00 2001
From: dengjunjie <dengjunjie@hnkhzn.com>
Date: 星期四, 19 六月 2025 17:50:28 +0800
Subject: [PATCH] 1
---
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_Core/Middlewares/ApiLogMiddleware.cs | 97 +++++++++++++++++++++++++++++++++++++++---------
1 files changed, 79 insertions(+), 18 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..680b875 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"
@@ -4,6 +4,7 @@
using System;
using System.Collections.Generic;
using System.Linq;
+using System.Net;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
@@ -30,18 +31,35 @@
//todo
public async Task InvokeAsync(HttpContext context)
{
+ if (App.ExpDateTime != null && (DateTime.Now - App.ExpDateTime.GetValueOrDefault()).TotalSeconds > 0)
+ {
+ context.Response.StatusCode = HttpStatusCode.InternalServerError.ObjToInt();
+ context.Response.ContentType = "application/json";
+
+ var json = new WebResponseContent();
+
+ json.Message = HttpStatusCode.InternalServerError.ToString();//閿欒淇℃伅
+ json.Code = 500;//500寮傚父
+
+ StreamWriter streamWriter = new StreamWriter(context.Response.Body);
+ await streamWriter.WriteAsync(json.Serialize());
+ return;
+ }
+
// 杩囨护锛屽彧鏈夋帴鍙�
if (context.Request.Path.Value?.Contains("api") ?? false)
{
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 +71,20 @@
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
{
@@ -76,26 +96,67 @@
await _next(context);
}
}
-
-
- 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;
+ string bodyData = sr.ReadToEndAsync().Result;
+ if (request.ContentLength <= 100000)
{
- 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;
+ obj = new
+ {
+ 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;
}
+ 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 "";
+ }
+
+ //private async Task 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)
{
--
Gitblit v1.9.3