From 17e4c7e3e7b3ef60d9da6de3b2a39a14a53c38a0 Mon Sep 17 00:00:00 2001
From: z8018 <1282578289@qq.com>
Date: 星期三, 12 三月 2025 14:11:33 +0800
Subject: [PATCH] 1

---
 WIDESEAWCS_Server/WIDESEAWCS_Core/LogHelper/Logger.cs |  121 ++++++++++++++++++++++++++++++++++-----
 1 files changed, 104 insertions(+), 17 deletions(-)

diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Core/LogHelper/Logger.cs b/WIDESEAWCS_Server/WIDESEAWCS_Core/LogHelper/Logger.cs
index 7f1d74a..0592db1 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_Core/LogHelper/Logger.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_Core/LogHelper/Logger.cs
@@ -33,6 +33,7 @@
             {
                 try
                 {
+                    //濡傛灉闃熷垪涓湁鏁版嵁涓旈槦鍒楄〃涓殑琛屾暟灏忎簬500锛屽垯灏嗛槦鍒椾腑鐨勬暟鎹啓鍏ラ槦鍒楄〃
                     if (loggerQueueData.Count() > 0 && queueTable.Rows.Count < 500)
                     {
                         DequeueToTable(queueTable); continue;
@@ -40,21 +41,26 @@
                     //姣�5绉掑啓涓�娆℃暟鎹�
                     Thread.Sleep(5000);
 
+                    //濡傛灉闃熷垪琛ㄤ腑鐨勮鏁颁负0锛屽垯璺宠繃鏈寰幆
                     if (queueTable.Rows.Count == 0) { continue; }
 
+                    //鍒涘缓SqlSugarClient瀵硅薄锛岀敤浜庤繛鎺ユ暟鎹簱
                     SqlSugarClient sugarClient = new SqlSugarClient(new ConnectionConfig()
                     {
                         ConnectionString = DBContext.GetMainConnectionDb().Connection,
                         IsAutoCloseConnection = true,
-                        DbType = MainDb.DbType,
+                        DbType = DBContext.DbType,
                     });
 
+                    //灏嗛槦鍒楄〃涓殑鏁版嵁鎵归噺鎻掑叆鏁版嵁搴�
                     int rows = sugarClient.Fastest<DataTable>().AS("Sys_Log").BulkCopy(queueTable);
 
+                    //娓呯┖闃熷垪琛�
                     queueTable.Clear();
                 }
                 catch (Exception ex)
                 {
+                    //鎵撳嵃寮傚父淇℃伅
                     Console.WriteLine(ex.ToString());
                 }
             }
@@ -66,25 +72,37 @@
             if (log != null)
             {
                 DataRow row = queueTable.NewRow();
+                // 濡傛灉log鐨凚eginDate涓虹┖鎴栬�匓eginDate鐨勫勾浠藉皬浜�2010锛屽垯灏咮eginDate璁剧疆涓哄綋鍓嶆椂闂�
                 if (log.BeginDate == null || log.BeginDate?.Year < 2010)
                 {
                     log.BeginDate = DateTime.Now;
                 }
+                // 濡傛灉log鐨凟ndDate涓虹┖锛屽垯灏咵ndDate璁剧疆涓哄綋鍓嶆椂闂�
                 if (log.EndDate == null)
                 {
                     log.EndDate = DateTime.Now;
                 }
                 //  row["Id"] = log.Id;
+                // 灏哛equestParam涓殑鎹㈣绗︽浛鎹负绌哄瓧绗︿覆
                 row["RequestParam"] = log.RequestParam?.Replace("\r\n", "");
+                // 灏哛esponseParam涓殑鎹㈣绗︽浛鎹负绌哄瓧绗︿覆
                 row["ResponseParam"] = log.ResponseParam?.Replace("\r\n", "");
                 //row["Success"] = log.Success ?? -1;
+                // 灏咮eginDate璁剧疆涓簂og鐨凚eginDate
                 row["BeginDate"] = log.BeginDate;
+                // 灏咵ndDate璁剧疆涓簂og鐨凟ndDate
                 row["EndDate"] = log.EndDate;
+                // 璁$畻ElapsedTime锛屽嵆EndDate鍑忓幓BeginDate鐨勬绉掓暟
                 row["ElapsedTime"] = ((DateTime)log.EndDate - (DateTime)log.BeginDate).TotalMilliseconds;
+                // 灏哢serIP璁剧疆涓簂og鐨刄serIP
                 row["UserIP"] = log.UserIP;
+                // 灏哢rl璁剧疆涓簂og鐨刄rl
                 row["Url"] = log.Url;
+                // 濡傛灉log鐨刄serId涓虹┖锛屽垯灏哢serId璁剧疆涓�-1锛屽惁鍒欒缃负log鐨刄serId
                 row["UserId"] = log.UserId ?? -1;
+                // 灏哢serName璁剧疆涓簂og鐨刄serName
                 row["UserName"] = log.UserName;
+                // 灏唕ow娣诲姞鍒皅ueueTable涓�
                 queueTable.Rows.Add(row);
             }
         }
@@ -110,39 +128,105 @@
             return queueTable;
         }
 
-        public static void Add(string requestParameter, string responseParameter)
+        public static void Add(string url, string requestParameter, string responseParameter, DateTime beginDate)
         {
-            dynamic log = null;
+            dynamic? log = null;
             try
             {
-                HttpContext context = App.HttpContext;
-                if (context == null)
-                {
-                    return;
-                }
-                if (context.Request.Method == "OPTIONS") return;
-                RequestLogModel logModel = (context.RequestServices.GetService(typeof(RequestLogModel)) as RequestLogModel) ?? new RequestLogModel { RequestDate = DateTime.Now };
-
-                IUser user = App.User;
+                //鑾峰彇褰撳墠鐢ㄦ埛
+                IUser? user = App.User;
+                //鍒涘缓鏃ュ織瀵硅薄
                 log = new
                 {
-                    BeginDate = logModel.RequestDate,
+                    //璇锋眰寮�濮嬫椂闂�
+                    BeginDate = beginDate,
+                    //璇锋眰缁撴潫鏃堕棿
                     EndDate = DateTime.Now,
+                    //璇锋眰鍙傛暟
                     RequestParam = requestParameter,
+                    //鍝嶅簲鍙傛暟
                     ResponseParam = responseParameter,
-                    Url = context.Request.Scheme + "://" + context.Request.Host + context.Request.PathBase + context.Request.Path,
-                    UserIP = GetClientIP(context) ?.Replace("::ffff:", ""),
-                    UserId = user.UserId,
-                    UserName = user.UserName
+                    //璇锋眰URL
+                    Url = url,
+                    //瀹㈡埛绔疘P
+                    UserIP = "",
+                    //鐢ㄦ埛ID
+                    UserId = user?.UserId,
+                    //鐢ㄦ埛鍚�
+                    UserName = user?.UserName
                 };
             }
             catch (Exception exception)
             {
+                //濡傛灉鍙戠敓寮傚父锛屽垯鍒涘缓鏃ュ織瀵硅薄
                 log = log ?? new
                 {
+                    //璇锋眰寮�濮嬫椂闂�
                     BeginDate = DateTime.Now,
+                    //璇锋眰缁撴潫鏃堕棿
                     EndDate = DateTime.Now,
+                    //璇锋眰鍙傛暟
                     RequestParam = requestParameter,
+                    //鍝嶅簲鍙傛暟
+                    ResponseParam = responseParameter,
+                };
+            }
+            //娣诲姞绯荤粺鏃ュ織
+            loggerQueueData.Enqueue(log);
+        }
+
+        public static void Add(string requestParameter, string responseParameter)
+        {
+            dynamic? log = null;
+            try
+            {
+                //鑾峰彇褰撳墠HttpContext
+                HttpContext? context = App.HttpContext;
+                //濡傛灉HttpContext涓虹┖锛屽垯杩斿洖
+                if (context == null)
+                {
+                    return;
+                }
+                //濡傛灉璇锋眰鏂规硶涓篛PTIONS锛屽垯杩斿洖
+                if (context.Request.Method == "OPTIONS") return;
+                //鑾峰彇RequestLogModel瀹炰緥
+                RequestLogModel logModel = (context.RequestServices.GetService(typeof(RequestLogModel)) as RequestLogModel) ?? new RequestLogModel { RequestDate = DateTime.Now };
+
+                //鑾峰彇褰撳墠鐢ㄦ埛
+                IUser? user = App.User;
+                //鍒涘缓鏃ュ織瀵硅薄
+                log = new
+                {
+                    //璇锋眰寮�濮嬫椂闂�
+                    BeginDate = logModel.RequestDate,
+                    //璇锋眰缁撴潫鏃堕棿
+                    EndDate = DateTime.Now,
+                    //璇锋眰鍙傛暟
+                    RequestParam = requestParameter,
+                    //鍝嶅簲鍙傛暟
+                    ResponseParam = responseParameter,
+                    //璇锋眰URL
+                    Url = context.Request.Scheme + "://" + context.Request.Host + context.Request.PathBase + context.Request.Path,
+                    //瀹㈡埛绔疘P
+                    UserIP = GetClientIP(context)?.Replace("::ffff:", ""),
+                    //鐢ㄦ埛ID
+                    UserId = user?.UserId,
+                    //鐢ㄦ埛鍚�
+                    UserName = user?.UserName
+                };
+            }
+            catch (Exception exception)
+            {
+                //濡傛灉鍙戠敓寮傚父锛屽垯鍒涘缓鏃ュ織瀵硅薄
+                log = log ?? new
+                {
+                    //璇锋眰寮�濮嬫椂闂�
+                    BeginDate = DateTime.Now,
+                    //璇锋眰缁撴潫鏃堕棿
+                    EndDate = DateTime.Now,
+                    //璇锋眰鍙傛暟
+                    RequestParam = requestParameter,
+                    //鍝嶅簲鍙傛暟
                     ResponseParam = responseParameter,
                 };
             }
@@ -152,12 +236,15 @@
 
         public static string GetClientIP(HttpContext context)
         {
+            // 鑾峰彇璇锋眰澶翠腑鐨刋-Forwarded-For瀛楁锛屽苟灏嗗叾杞崲涓哄瓧绗︿覆
             var ip = context.Request.Headers["X-Forwarded-For"].ObjToString();
+            // 濡傛灉X-Forwarded-For瀛楁涓虹┖锛屽垯鑾峰彇杩滅▼IP鍦板潃
             if (string.IsNullOrEmpty(ip))
             {
                 ip = context.Connection.RemoteIpAddress.ObjToString();
             }
 
+            // 杩斿洖IP鍦板潃
             return ip;
         }
     }

--
Gitblit v1.9.3