protected virtual void DoBeforeActionExecuted(ActionExecutedContext context) { try { CurrentItem.AddItem(WebConst.ENDTIME, DateTime.Now); var result = context.Result; CurrentItem.AddItem(WebConst.RESPONSE, result); var request = context.HttpContext.Request; DateTime?beginTime = CurrentItem.GetItem <DateTime>(WebConst.BEGINTIME); var ms = beginTime.HasValue && beginTime.Value == null ? -1 : (long)(DateTime.Now - beginTime.Value).TotalMilliseconds; if (ms > ConfigItems.ApiWarningMis) { LogHelper.Warn($"请求共耗时:{ms} ms "); } else if (ConfigItems.LogProcessOpened) { LogHelper.Info($"请求共耗时:{ms} ms "); } LogHelper.Add($"请求耗时{ms} {request.Path}", LogLevels.ApiUrl, url: request.Path, millisecond: ms, appendMessage: true); } catch { } }
static void FixLogInfo(LogInfo logInfo, bool appendMessage) { if (CurrentItem.Items != null) { if (string.IsNullOrEmpty(logInfo.ServerIp)) { var ip = CurrentItem.GetItem <string>(ThreadContext.SERVERIP); if (!string.IsNullOrEmpty(ip)) //截取中间部分 用于显示端口 { // if (ip.Length > 32 && !is2Es) ip = ip.Replace(ip.Substring(5, 13), "***"); } else { ip = IpHelper.GetServerIp(); } logInfo.ServerIp = ip; } if (string.IsNullOrEmpty(logInfo.ClientIp)) { logInfo.ClientIp = CurrentItem.GetItem <string>(ThreadContext.CLIENTIP); } if (string.IsNullOrEmpty(logInfo.RequestUrl)) { logInfo.RequestUrl = CurrentItem.GetItem <string>(ThreadContext.REQUESTPATH); } if (appendMessage && ConfigItems.IsAppendLogMessage) { var msg = logInfo.Content; msg = msg?.AppendLogMessage(); logInfo.Content = msg; } } if (string.IsNullOrEmpty(logInfo.ServerIp)) { logInfo.ServerIp = string.Join(",", IpHelper.LocalServerIps); } if (string.IsNullOrEmpty(logInfo.ClientIp)) { logInfo.ClientIp = IpHelper.GetClientIp(); } if (string.IsNullOrEmpty(logInfo.RequestUrl)) { logInfo.RequestUrl = IpHelper.GetCurrentUrl(); } }