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