Example #1
0
 private void logResponse(ActionExecutedContext context)
 {
     try {
         if (PxConfigurationManager.PxConfig.Logging.ActionLogEnabled)
         {
             PxActionLogAttribute logAttribute = (context.ActionDescriptor as ControllerActionDescriptor).MethodInfo.GetCustomAttributes(false).OfType <PxActionLogAttribute>().FirstOrDefault();
             if (logAttribute != null && logAttribute.LogSetting == ActionLogSetting.NoLog)
             {
                 return;
             }
             PxLogResponseInfo info = new PxLogResponseInfo();
             if (context.HttpContext.Response.Headers != null && context.HttpContext.Response.Headers.Count > 0)
             {
                 info.Header = Newtonsoft.Json.JsonConvert.SerializeObject(context.HttpContext.Response.Headers);
             }
             info.RequestId    = context.HttpContext.TraceIdentifier;
             info.ResponseCode = context.HttpContext.Response.StatusCode.ToString();
             if (logAttribute != null && (logAttribute.LogSetting == ActionLogSetting.TraceWithAllData || logAttribute.LogSetting == ActionLogSetting.TraceWithResponseData))
             {
                 if (context.Result is RedirectResult)
                 {
                     RedirectResult redirectResult = context.Result as RedirectResult;
                     info.Message = JsonConvert.SerializeObject(new { RedirectUrl = redirectResult.Url });
                 }
                 else if (context.Result is RedirectToActionResult)
                 {
                     RedirectToActionResult redirectToActionResult = context.Result as RedirectToActionResult;
                     info.Message = JsonConvert.SerializeObject(new { ControllerName = redirectToActionResult.ControllerName, ActionName = redirectToActionResult.ActionName, RouteValues = redirectToActionResult.RouteValues });
                 }
                 else if (context.Result is RedirectToRouteResult)
                 {
                     RedirectToRouteResult redirectToRouteResult = context.Result as RedirectToRouteResult;
                     info.Message = JsonConvert.SerializeObject(redirectToRouteResult.RouteValues);
                 }
                 else if (!(context.Result is FileResult))
                 {
                     info.Message = JsonConvert.SerializeObject(context.Result);
                 }
             }
             info.UserId     = PxSession.Current.Principal.UserId;
             info.SessionKey = PxSession.Current.Principal.Authentication.Token;
             PxActionResponseLogger.Log(info);
         }
     }
     catch (Exception ex) {
         PxErrorLogger.Log(ex);
     }
 }
Example #2
0
 private void logRequest(ActionExecutingContext context)
 {
     try {
         if (PxConfigurationManager.PxConfig.Logging.ActionLogEnabled)
         {
             PxActionLogAttribute logAttribute = (context.ActionDescriptor as ControllerActionDescriptor).MethodInfo.GetCustomAttributes(false).OfType <PxActionLogAttribute>().FirstOrDefault();
             if (logAttribute != null && logAttribute.LogSetting == ActionLogSetting.NoLog)
             {
                 return;
             }
             PxLogRequestInfo info = new PxLogRequestInfo();
             info.RequestId = context.HttpContext.TraceIdentifier;
             if (context.HttpContext.Request.Headers != null && context.HttpContext.Request.Headers.Count > 0)
             {
                 info.Header = Newtonsoft.Json.JsonConvert.SerializeObject(context.HttpContext.Request.Headers);
             }
             if (logAttribute == null || logAttribute.LogSetting == ActionLogSetting.TraceWithAllData || logAttribute.LogSetting == ActionLogSetting.TraceWithRequestData)
             {
                 if (context.ActionArguments != null && context.ActionArguments.Count > 0)
                 {
                     info.Message = JsonConvert.SerializeObject(context.ActionArguments);
                 }
             }
             info.Ip          = PxSession.Current.Client.IPAddress;
             info.MethodType  = context.HttpContext.Request.Method;
             info.RequestType = context.HttpContext.Request.IsAjaxRequest() ? Common.Enums.RequestType.XHttp : Common.Enums.RequestType.Http;
             info.Url         = context.HttpContext.Request.Path.HasValue ? context.HttpContext.Request.Path.Value : null;
             info.UserId      = PxSession.Current.Principal.UserId;
             info.SessionKey  = PxSession.Current.Principal.Authentication.Token;
             PxActionRequestLogger.Log(info);
         }
     }
     catch (Exception ex) {
         PxErrorLogger.Log(ex);
     }
 }