Exemple #1
0
        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();
            }
        }