コード例 #1
0
ファイル: Global.asax.cs プロジェクト: Prev-I/ExampleSolution
        protected void Application_BeginRequest(object sender, EventArgs e)
        {
            HttpResponse       response = HttpContext.Current.Response;
            OutputFilterStream filter   = new OutputFilterStream(response.Filter);

            response.Filter = filter;
            HttpContext.Current.Items.Add("logFilter", filter);

            switch (TraceUtil.TraceIsEnabled())
            {
            case TraceUtil.TraceMode.ON:
                NLog.LogManager.GetCurrentClassLogger().Trace(String.Format("REQUEST[{0}]({1}) - [{2}] {3}",
                                                                            filter.GuidRequest,
                                                                            HttpContext.Current.Request.UserHostAddress,
                                                                            HttpContext.Current.Request.HttpMethod,
                                                                            HttpContext.Current.Request.Url));
                break;

            case TraceUtil.TraceMode.DATA:
                string content = RequestBody();
                if (!string.IsNullOrWhiteSpace(content))
                {
                    NLog.LogManager.GetCurrentClassLogger().Trace(String.Format("REQUEST[{0}]({1}) - [{2}] {3}",
                                                                                filter.GuidRequest,
                                                                                HttpContext.Current.Request.UserHostAddress,
                                                                                HttpContext.Current.Request.HttpMethod,
                                                                                content));
                }
                break;
            }
        }
コード例 #2
0
ファイル: Global.asax.cs プロジェクト: Prev-I/ExampleSolution
        protected void Application_EndRequest(object sender, EventArgs e)
        {
            HttpResponse       response = HttpContext.Current.Response;
            OutputFilterStream filter   = (OutputFilterStream)HttpContext.Current.Items["logFilter"];

            switch (TraceUtil.TraceIsEnabled())
            {
            case TraceUtil.TraceMode.ON:
                NLog.LogManager.GetCurrentClassLogger().Trace(String.Format("RESPONSE.{0}[{1}] - [{2}] {3}",
                                                                            response.StatusCode.ToString(),
                                                                            filter.GuidRequest,
                                                                            ((HttpApplication)sender).Request.HttpMethod,
                                                                            ((HttpApplication)sender).Request.Url));
                break;

            case TraceUtil.TraceMode.DATA:
                if (filter.CopyStreamLength > Int64.Parse(ConfigurationManager.AppSettings["traceResponseMaxSize"]))
                {
                    NLog.LogManager.GetCurrentClassLogger().Trace(String.Format("RESPONSE.{0}[{1}] - Big response skipped from trace.",
                                                                                response.StatusCode.ToString(),
                                                                                filter?.GuidRequest ?? "N.A."));
                }
                else if (response.ContentType.Contains("application/json"))
                {
                    dynamic dynBodyText = JsonConvert.DeserializeObject(filter.ReadStream());
                    NLog.LogManager.GetCurrentClassLogger().Trace(String.Format("RESPONSE.{0}[{1}] - {2}",
                                                                                response.StatusCode.ToString(),
                                                                                filter?.GuidRequest ?? "N.A.",
                                                                                ((JToken)dynBodyText).ToStringLog()));
                }
                break;
            }
        }
コード例 #3
0
        private void ContextOnBeginRequest(object sender, EventArgs eventArgs)
        {
            string requestBody;

            using (var steamReader = new StreamReader(_context.Request.InputStream))
            {
                requestBody = steamReader.ReadToEnd();
            }

            var logObject = new LogRequestResponse
            {
                Body    = requestBody,
                Headers = _context.Request.Headers
                          .AllKeys.Aggregate(string.Empty, (current, key) => current + $"{key}: {_context.Request.Headers[key]},\n"),
                HttpMethod = _context.Request.HttpMethod
            };

            Debug.WriteLine(logObject.ToString());


            HttpResponse       response = HttpContext.Current.Response;
            OutputFilterStream filter   = new OutputFilterStream(response.Filter);

            response.Filter = filter;
        }
コード例 #4
0
        internal void Application_BeginRequest(object sender, EventArgs e)
        {
            HttpResponse       response = HttpContext.Current.Response;
            OutputFilterStream filter   = new OutputFilterStream(response.Filter);

            HttpContext.Current.Items["Filter"] = filter;
            response.Filter = filter;
        }
コード例 #5
0
        /// <summary>
        /// Initializes the request by setting a response filter.
        /// </summary>
        /// <param name="sender">Application.</param>
        /// <param name="e">Event.</param>
        private void BeginRequest(object sender, EventArgs e)
        {
            var application = (HttpApplication)sender;
            savedRequest = null;
            if (ShouldCaptureRequestBody(application.Request))
            {
                savedRequest = new StreamReader(application.Request.InputStream).ReadToEnd();
                application.Request.InputStream.Seek(0, SeekOrigin.Begin);
            }

            if (ShouldCaptureResponseBody(application.Request))
            {
                var response = application.Response;
                var filter = new OutputFilterStream(response.Filter);
                response.Filter = filter;

                application.Request.RequestContext.HttpContext.Items[FILTER_KEY] = filter;
            }
        }