From 7ff298c6834275b63b612af49651673689a39660 Mon Sep 17 00:00:00 2001 From: hutongqing <hutongqing@hnkhzn.com> Date: 星期三, 27 十一月 2024 11:33:18 +0800 Subject: [PATCH] 更新 --- WIDESEAWCS_Server/WIDESEAWCS_Core/LogHelper/Logger.cs | 42 +++++++++++++++++++++++++++++++++++++++++- 1 files changed, 41 insertions(+), 1 deletions(-) diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Core/LogHelper/Logger.cs b/WIDESEAWCS_Server/WIDESEAWCS_Core/LogHelper/Logger.cs index 7f1d74a..17a2043 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,8 +41,10 @@ //姣�5绉掑啓涓�娆℃暟鎹� Thread.Sleep(5000); + //濡傛灉闃熷垪琛ㄤ腑鐨勮鏁颁负0锛屽垯璺宠繃鏈寰幆 if (queueTable.Rows.Count == 0) { continue; } + //鍒涘缓SqlSugarClient瀵硅薄锛岀敤浜庤繛鎺ユ暟鎹簱 SqlSugarClient sugarClient = new SqlSugarClient(new ConnectionConfig() { ConnectionString = DBContext.GetMainConnectionDb().Connection, @@ -49,12 +52,15 @@ DbType = MainDb.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); } } @@ -115,34 +133,53 @@ 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, - UserIP = GetClientIP(context) ?.Replace("::ffff:", ""), + //瀹㈡埛绔疘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 +189,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