From 8467804705615f7614c29e7ef7ac3e99f5c13a54 Mon Sep 17 00:00:00 2001 From: dengjunjie <dengjunjie@hnkhzn.com> Date: 星期二, 11 二月 2025 13:53:05 +0800 Subject: [PATCH] 优化WMS接口日志记录,添加接口名称和接口描述 --- 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_Core/LogHelper/Logger.cs | 67 +++++++++++++++++++++++++++++++-- 1 files changed, 63 insertions(+), 4 deletions(-) diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Core/LogHelper/Logger.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Core/LogHelper/Logger.cs" index d833379..1d9a8b7 100644 --- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Core/LogHelper/Logger.cs" +++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Core/LogHelper/Logger.cs" @@ -1,13 +1,21 @@ 锘縰sing Microsoft.AspNetCore.Http; +using Microsoft.OpenApi.Models; using SqlSugar; +using StackExchange.Profiling.Internal; using System; using System.Collections.Concurrent; using System.Collections.Generic; +using System.ComponentModel; using System.Data; +using System.IO; using System.Linq; +using System.Reflection; +using System.Runtime.Serialization.Formatters; using System.Text; using System.Threading.Tasks; +using System.Xml.Linq; using WIDESEA_Core.DB; +using WIDESEA_Core.Enums; using WIDESEA_Core.Helper; using WIDESEA_Core.HttpContextUser; using WIDESEA_Core.Seed; @@ -87,7 +95,7 @@ row["RequestParam"] = log.RequestParam?.Replace("\r\n", "").Replace("\n", ""); // 灏哛esponseParam涓殑鎹㈣绗︽浛鎹负绌哄瓧绗︿覆 row["ResponseParam"] = log.ResponseParam?.Replace("\r\n", "").Replace("\n", ""); - //row["Success"] = log.Success ?? -1; + row["Success"] = log.Success ?? -1; // 灏咮eginDate璁剧疆涓簂og鐨凚eginDate row["BeginDate"] = log.BeginDate; // 灏咵ndDate璁剧疆涓簂og鐨凟ndDate @@ -102,6 +110,8 @@ row["UserId"] = log.UserId ?? -1; // 灏哢serName璁剧疆涓簂og鐨刄serName row["UserName"] = log.UserName; + row["MethodName"] = log.MethodName; + row["Methodremark"] = log.Methodremark; // 灏唕ow娣诲姞鍒皅ueueTable涓� queueTable.Rows.Add(row); } @@ -115,13 +125,13 @@ queueTable.Columns.Add("EndDate", Type.GetType("System.DateTime")); queueTable.Columns.Add("RequestParam", typeof(string)); queueTable.Columns.Add("ResponseParam", typeof(string)); - //queueTable.Columns.Add("Success", Type.GetType("System.Int32")); + queueTable.Columns.Add("Success", Type.GetType("System.Int32")); queueTable.Columns.Add("Url", typeof(string)); queueTable.Columns.Add("UserIP", typeof(string)); queueTable.Columns.Add("UserName", typeof(string)); queueTable.Columns.Add("UserId", Type.GetType("System.Int32")); - //queueTable.Columns.Add("LogType", typeof(string)); - //queueTable.Columns.Add("ExceptionInfo", typeof(string)); + queueTable.Columns.Add("MethodName", typeof(string)); + queueTable.Columns.Add("Methodremark", typeof(string)); //queueTable.Columns.Add("ServiceIP", typeof(string)); //queueTable.Columns.Add("BrowserType", typeof(string)); //queueTable.Columns.Add("Role_Id", Type.GetType("System.Int32")); @@ -131,6 +141,8 @@ public static void Add(string requestParameter, string responseParameter) { dynamic log = null; + string MethodName = string.Empty; + string Methodremark = string.Empty; try { //鑾峰彇褰撳墠HttpContext @@ -140,11 +152,46 @@ { return; } + //濡傛灉璇锋眰鏂规硶涓篛PTIONS锛屽垯杩斿洖 if (context.Request.Method == "OPTIONS") return; //鑾峰彇RequestLogModel瀹炰緥 RequestLogModel logModel = (context.RequestServices.GetService(typeof(RequestLogModel)) as RequestLogModel) ?? new RequestLogModel { RequestDate = DateTime.Now }; + #region 鑾峰彇鎺ュ彛娉ㄩ噴 + try + { + string path = context.Request.Path; + var names = path.Split('/'); + var basePath = AppContext.BaseDirectory + "WIDESEA_WMSServer"; + Assembly assembly = Assembly.LoadFrom(basePath); + List<Type> types = assembly.GetTypes().Where(x => x.Name.Contains(names[2] + "Controller")).ToList(); + if (types.Count > 0) + { + //MethodInfo methodInfo = types.First().GetMethod("login"); + MethodInfo methodInfo = types.First().GetMethods() + .FirstOrDefault(m => m.Name.Equals(names[3], StringComparison.OrdinalIgnoreCase)); + if (methodInfo != null) + { + MethodName = methodInfo.Name; + string xmlPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, methodInfo.DeclaringType.Assembly.GetName().Name + ".xml"); + //if (!File.Exists(xmlPath)) return "XML documentation file not found."; // 妫�鏌ユ枃浠舵槸鍚﹀瓨鍦� + // 鍔犺浇XML鏂囨。骞惰В鏋愭憳瑕佷俊鎭� + XDocument xdoc = XDocument.Load(xmlPath); + string membername = $"M:{methodInfo.DeclaringType.FullName}.{methodInfo.Name}"; + var member = xdoc.Descendants("member") + .FirstOrDefault(m => m.Attribute("name").Value.ToString().Contains(membername));// 瀹氫綅鍒版柟娉曡妭鐐� + //.FirstOrDefault(m => m.Attribute("name")?.Value == $"M:{methodInfo.DeclaringType.FullName}.{methodInfo.Name}"); // 瀹氫綅鍒版柟娉曡妭鐐� + //if (member == null) return "Member not found in XML documentation."; // 妫�鏌ユ柟娉曟槸鍚﹀湪XML鏂囨。涓壘鍒� + //var summary = member?.Element("summary")?.Value ?? "No summary provided."; // 鑾峰彇鎽樿淇℃伅鎴栭粯璁ゅ�� + Methodremark = member?.Element("summary")?.Value.Replace("\n", "").Replace(" ", "") ?? methodInfo.Name; // 鑾峰彇鎽樿淇℃伅鎴栭粯璁ゅ�� + } + } + } + catch (Exception ex) + { + } + #endregion //鑾峰彇褰撳墠鐢ㄦ埛 IUser user = App.User; //鍒涘缓鏃ュ織瀵硅薄 @@ -158,6 +205,12 @@ RequestParam = requestParameter, //鍝嶅簲鍙傛暟 ResponseParam = responseParameter, + //鏂规硶鍚嶇О + MethodName = MethodName, + //鏂规硶鎻忚堪 + Methodremark= Methodremark, + //鍝嶅簲鐘舵�� + Success = LogStatusEnum.Success.ObjToInt(), //璇锋眰URL Url = context.Request.Scheme + "://" + context.Request.Host + context.Request.PathBase + context.Request.Path, //瀹㈡埛绔疘P @@ -181,6 +234,12 @@ RequestParam = requestParameter, //鍝嶅簲鍙傛暟 ResponseParam = responseParameter, + //鏂规硶鍚嶇О + MethodName = MethodName, + //鏂规硶鎻忚堪 + Methodremark = Methodremark, + //鍝嶅簲鐘舵�� + Success = LogStatusEnum.Error.ObjToInt(), }; } //娣诲姞绯荤粺鏃ュ織 -- Gitblit v1.9.3