private async Task <RaygunRequestMessage> BuildRequestMessage() { var message = _currentHttpContext.Value != null ? await RaygunAspNetCoreRequestMessageBuilder.Build(_currentHttpContext.Value, _requestMessageOptions) : null; _currentHttpContext.Value = null; return(message); }
//public IActionResult Index() //{ // throw new Exception("Yikes an Error!!!"); // //return View(); //} public async Task <IActionResult> Index() { try { throw new Exception("Yikes an Error!!!"); //return View(); } catch (Exception ex) { var msg = new RaygunMessage(); msg.Details = new RaygunMessageDetails { User = RayGunUtils.BuildRayGunIdentifierMessage(HttpContext.User), Error = RaygunErrorMessageBuilder.Build(ex), Request = await RaygunAspNetCoreRequestMessageBuilder.Build(HttpContext, new RaygunRequestMessageOptions()) }; var rgClient = _rgProvider.GetClient(new RaygunSettings(), HttpContext); await rgClient.SendInBackground(msg); return(View()); //return new JsonResult(new ExceptionResponse //{ // ErrorId = Guid.NewGuid(), // Message = ex.Message //}); ; } }
public static async Task <RaygunMessage> BuildRayGunMessageAsync(HttpContext httpContext, Exception ex, IList <string> tags, Dictionary <object, object> customData) { var msg = new RaygunMessage(); msg.Details = new RaygunMessageDetails { User = BuildRayGunIdentifierMessage(httpContext.User), //Error = RaygunErrorMessageBuilder.Build(ex), Tags = tags, UserCustomData = customData, Request = await RaygunAspNetCoreRequestMessageBuilder.Build(httpContext, new RaygunRequestMessageOptions()) }; return(msg); }
public void Enrich(LogEvent logEvent, ILogEventPropertyFactory propertyFactory) { if (logEvent.Level < _restrictedToMinimumLevel) { return; } if (_httpContextAccessor?.HttpContext == null) { return; } var options = new RaygunRequestMessageOptions { IsRawDataIgnored = _raygunSettings.IsRawDataIgnored, UseXmlRawDataFilter = _raygunSettings.UseXmlRawDataFilter, IsRawDataIgnoredWhenFilteringFailed = _raygunSettings.IsRawDataIgnoredWhenFilteringFailed, UseKeyValuePairRawDataFilter = _raygunSettings.UseKeyValuePairRawDataFilter }; options.AddCookieNames(_raygunSettings.IgnoreCookieNames ?? Array.Empty <string>()); options.AddHeaderNames(_raygunSettings.IgnoreHeaderNames ?? Array.Empty <string>()); options.AddFormFieldNames(_raygunSettings.IgnoreFormFieldNames ?? Array.Empty <string>()); options.AddQueryParameterNames(_raygunSettings.IgnoreQueryParameterNames ?? Array.Empty <string>()); options.AddSensitiveFieldNames(_raygunSettings.IgnoreSensitiveFieldNames ?? Array.Empty <string>()); options.AddServerVariableNames(_raygunSettings.IgnoreServerVariableNames ?? Array.Empty <string>()); RaygunRequestMessage httpRequestMessage = RaygunAspNetCoreRequestMessageBuilder .Build(_httpContextAccessor.HttpContext, options) .GetAwaiter() .GetResult(); RaygunResponseMessage httpResponseMessage = RaygunAspNetCoreResponseMessageBuilder.Build(_httpContextAccessor.HttpContext); // The Raygun request/response messages are stored in the logEvent properties collection. // When the error is sent to Raygun, these messages are extracted from the known properties // and then removed so as to not duplicate data in the payload. logEvent.AddPropertyIfAbsent(propertyFactory.CreateProperty(RaygunRequestMessagePropertyName, httpRequestMessage, true)); logEvent.AddPropertyIfAbsent(propertyFactory.CreateProperty(RaygunResponseMessagePropertyName, httpResponseMessage, true)); }