private RaygunRequestMessage BuildRequestMessage() { RaygunRequestMessage requestMessage = null; HttpContext context = HttpContext.Current; if (context != null) { HttpRequest request = null; try { request = context.Request; } catch (HttpException ex) { RaygunLogger.Instance.Error($"Failed to retrieve the HttpRequest due to: {ex.Message}"); } if (request != null) { requestMessage = RaygunRequestMessageBuilder.Build(request, _requestMessageOptions); } } return(requestMessage); }
public HttpResponseMessage Get() { string nullSearchFileName = @"emptygsaxml.xml"; var filepath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, nullSearchFileName); var doc = XDocument.Load(filepath); var context = new HttpContextWrapper(HttpContext.Current); var site = context.Request["site"] as string ?? "unknown"; var requestMessage = RaygunRequestMessageBuilder.Build(System.Web.HttpContext.Current.Request, null); new RaygunWebApiClient().SendInBackground(new RaygunMessage { OccurredOn = DateTime.UtcNow, Details = new RaygunMessageDetails { UserCustomData = new List <string> { site }.ToDictionary(x => x), Request = requestMessage, GroupingKey = site, Tags = new List <string> { "GSA" }, Error = new RaygunErrorMessage { Message = site } } }); return(new HttpResponseMessage { Content = new StringContent(doc.ToString(), Encoding.UTF8, "application/xml") }); }
//public HttpResponseMessage Get() //{ // string nullSuggestFilename = @"samplejson.txt"; // var filepath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, nullSuggestFilename); // //return new JsonResult { Data = File.ReadAllText(filepath), ContentType = "application/json" }; // return new HttpResponseMessage // { // Content = new StringContent(File.ReadAllText(filepath), Encoding.UTF8, "application/json") // }; //} public string Get() { var context = new HttpContextWrapper(HttpContext.Current); var site = context.Request["site"] as string ?? "unknown"; var requestMessage = RaygunRequestMessageBuilder.Build(System.Web.HttpContext.Current.Request, null); new RaygunWebApiClient().SendInBackground(new RaygunMessage { OccurredOn = DateTime.UtcNow, Details = new RaygunMessageDetails { UserCustomData = new List <string> { site }.ToDictionary(x => x), Request = requestMessage, GroupingKey = site, Tags = new List <string> { "GSA" }, Error = new RaygunErrorMessage { Message = site } } }); var result = new List <Result>(0); var model = new RootObject { Query = string.Empty, Results = result }; return(JsonConvert.SerializeObject(model)); }
private RaygunRequestMessage BuildRequestMessage() { RaygunRequestMessage requestMessage = null; HttpContext context = HttpContext.Current; if (context != null) { HttpRequest request = null; try { request = context.Request; } catch (HttpException ex) { System.Diagnostics.Trace.WriteLine("Error retrieving HttpRequest {0}", ex.Message); } if (request != null) { requestMessage = RaygunRequestMessageBuilder.Build(request, _requestMessageOptions); } } return(requestMessage); }
public void QueryStringTest() { var request = new HttpRequest("test", "http://google.com", "test=test"); var message = RaygunRequestMessageBuilder.Build(request, null); Assert.That(message.QueryString, Contains.Item(new KeyValuePair <string, string>("test", "test"))); }
/// <summary> /// Emit the provided log event to the sink. /// </summary> /// <param name="logEvent">The log event to write.</param> public void Emit(LogEvent logEvent) { //Include the log level as a tag. var tags = _tags.Concat(new [] { logEvent.Level.ToString() }).ToList(); var properties = logEvent.Properties .Select(pv => new { Name = pv.Key, Value = RaygunPropertyFormatter.Simplify(pv.Value) }) .ToDictionary(a => a.Name, b => b.Value); // Add the message properties.Add("RenderedLogMessage", logEvent.RenderMessage(_formatProvider)); properties.Add("LogMessageTemplate", logEvent.MessageTemplate.Text); // Create new message var raygunMessage = new RaygunMessage { OccurredOn = logEvent.Timestamp.UtcDateTime }; // Add exception when available if (logEvent.Exception != null) { raygunMessage.Details.Error = RaygunErrorMessageBuilder.Build(logEvent.Exception); } // Add user when requested if (!String.IsNullOrWhiteSpace(_userNameProperty) && logEvent.Properties.ContainsKey(_userNameProperty) && logEvent.Properties[_userNameProperty] != null) { raygunMessage.Details.User = new RaygunIdentifierMessage(logEvent.Properties[_userNameProperty].ToString()); } // Add version when requested if (!String.IsNullOrWhiteSpace(_applicationVersionProperty) && logEvent.Properties.ContainsKey(_applicationVersionProperty) && logEvent.Properties[_applicationVersionProperty] != null) { raygunMessage.Details.Version = logEvent.Properties[_applicationVersionProperty].ToString(); } // Build up the rest of the message raygunMessage.Details.Environment = new RaygunEnvironmentMessage(); raygunMessage.Details.Tags = tags; raygunMessage.Details.UserCustomData = properties; raygunMessage.Details.MachineName = Environment.MachineName; if (HttpContext.Current != null) { // Request message is built here instead of raygunClient.Send so RequestMessageOptions have to be constructed here var requestMessageOptions = new RaygunRequestMessageOptions(_ignoredFormFieldNames, Enumerable.Empty <string>(), Enumerable.Empty <string>(), Enumerable.Empty <string>()); raygunMessage.Details.Request = RaygunRequestMessageBuilder.Build(HttpContext.Current.Request, requestMessageOptions); } // Submit //_client.SendInBackground(raygunMessage); _client.Send(raygunMessage); }
public void IgnoreFormField_CaseInsensitive() { var request = CreateWritableRequest(); request.Form.Add("TESTFORMFIELD", "FormFieldValue"); Assert.AreEqual(1, request.Form.Count); var options = new RaygunRequestMessageOptions(new string[] { "testformfield" }, Enumerable.Empty <string>(), Enumerable.Empty <string>(), Enumerable.Empty <string>()); var message = RaygunRequestMessageBuilder.Build(request, options); Assert.AreEqual(0, message.Form.Count); }
public void DuplicateCookies() { var request = new HttpRequest("test", "http://google.com", "test=test"); request.Cookies.Add(new HttpCookie("TestCookie", "CookieValue")); request.Cookies.Add(new HttpCookie("TestCookie", "CookieValue")); Assert.AreEqual(2, request.Cookies.Count); var message = RaygunRequestMessageBuilder.Build(request, new RaygunRequestMessageOptions()); Assert.AreEqual(2, message.Cookies.Count); Assert.AreEqual(2, CookieCount(message, "TestCookie")); }
public void IgnoreFormField_Contains() { var request = CreateWritableRequest(); request.Form.Add("TestFormFieldTest", "FormFieldValue"); request.Form.Add("TestFormField", "FormFieldValue"); request.Form.Add("FormFieldTest", "FormFieldValue"); Assert.AreEqual(3, request.Form.Count); var options = new RaygunRequestMessageOptions(new string[] { "*formfield*" }, Enumerable.Empty <string>(), Enumerable.Empty <string>(), Enumerable.Empty <string>()); var message = RaygunRequestMessageBuilder.Build(request, options); Assert.AreEqual(0, message.Form.Count); }
public void IgnoreCookie_Contains() { var request = new HttpRequest("test", "http://google.com", "test=test"); request.Cookies.Add(new HttpCookie("TestCookieTest", "CookieValue")); request.Cookies.Add(new HttpCookie("TestCookie", "CookieValue")); request.Cookies.Add(new HttpCookie("CookieTest", "CookieValue")); Assert.AreEqual(3, request.Cookies.Count); var options = new RaygunRequestMessageOptions(_empty, _empty, new string[] { "*cookie*" }, _empty); var message = RaygunRequestMessageBuilder.Build(request, options); Assert.AreEqual(0, message.Cookies.Count); }
public void IgnoreAllCookies() { var request = new HttpRequest("test", "http://google.com", "test=test"); request.Cookies.Add(new HttpCookie("TestCookie1", "CookieValue")); request.Cookies.Add(new HttpCookie("TestCookie2", "CookieValue")); request.Cookies.Add(new HttpCookie("TestCookie3", "CookieValue")); Assert.AreEqual(3, request.Cookies.Count); var options = new RaygunRequestMessageOptions(Enumerable.Empty <string>(), Enumerable.Empty <string>(), new string[] { "*" }, Enumerable.Empty <string>()); var message = RaygunRequestMessageBuilder.Build(request, options); Assert.AreEqual(0, message.Cookies.Count); }
public void IgnoreAllFormFields() { var request = CreateWritableRequest(); request.Form.Add("TestFormField1", "FormFieldValue"); request.Form.Add("TestFormField2", "FormFieldValue"); request.Form.Add("TestFormField3", "FormFieldValue"); Assert.AreEqual(3, request.Form.Count); var options = new RaygunRequestMessageOptions(new string[] { "*" }, _empty, _empty, _empty); var message = RaygunRequestMessageBuilder.Build(request, options); Assert.AreEqual(0, message.Form.Count); }
public void IgnoreCookie_CaseInsensitive() { var request = new HttpRequest("test", "http://google.com", "test=test"); request.Cookies.Add(new HttpCookie("TESTCOOKIE", "CookieValue")); request.Cookies.Add(new HttpCookie("TestCookie", "CookieValue")); request.Cookies.Add(new HttpCookie("testcookie", "CookieValue")); Assert.AreEqual(3, request.Cookies.Count); var options = new RaygunRequestMessageOptions(Enumerable.Empty <string>(), Enumerable.Empty <string>(), new string[] { "TeStCoOkIe" }, Enumerable.Empty <string>()); var message = RaygunRequestMessageBuilder.Build(request, options); Assert.AreEqual(0, message.Cookies.Count); }
public void IgnoreMultipleCookies() { var request = new HttpRequest("test", "http://google.com", "test=test"); request.Cookies.Add(new HttpCookie("TestCookie1", "CookieValue")); request.Cookies.Add(new HttpCookie("TestCookie2", "CookieValue")); request.Cookies.Add(new HttpCookie("TestCookie3", "CookieValue")); Assert.AreEqual(3, request.Cookies.Count); var options = new RaygunRequestMessageOptions(_empty, _empty, new string[] { "TestCookie1", "TestCookie3" }, _empty); var message = RaygunRequestMessageBuilder.Build(request, options); Assert.AreEqual(1, message.Cookies.Count); Assert.AreEqual(1, CookieCount(message, "TestCookie2")); }
public void IgnoreMultipleFormFields() { var request = CreateWritableRequest(); request.Form.Add("TestFormField1", "FormFieldValue"); request.Form.Add("TestFormField2", "FormFieldValue"); request.Form.Add("TestFormField3", "FormFieldValue"); Assert.AreEqual(3, request.Form.Count); var options = new RaygunRequestMessageOptions(new string[] { "TestFormField1", "TestFormField3" }, Enumerable.Empty <string>(), Enumerable.Empty <string>(), Enumerable.Empty <string>()); var message = RaygunRequestMessageBuilder.Build(request, options); Assert.AreEqual(1, message.Form.Count); Assert.IsTrue(message.Form.Contains("TestFormField2")); }
public void FormFields() { var request = CreateWritableRequest(); request.Form.Add("TestFormField1", "FormFieldValue"); request.Form.Add("TestFormField2", "FormFieldValue"); request.Form.Add("TestFormField3", "FormFieldValue"); Assert.AreEqual(3, request.Form.Count); var message = RaygunRequestMessageBuilder.Build(request, new RaygunRequestMessageOptions()); Assert.AreEqual(3, message.Form.Count); Assert.IsTrue(message.Form.Contains("TestFormField1")); Assert.IsTrue(message.Form.Contains("TestFormField2")); Assert.IsTrue(message.Form.Contains("TestFormField3")); }
public void IgnoreCookie_StartsWith() { var request = new HttpRequest("test", "http://google.com", "test=test"); request.Cookies.Add(new HttpCookie("TestCookieTest", "CookieValue")); request.Cookies.Add(new HttpCookie("TestCookie", "CookieValue")); request.Cookies.Add(new HttpCookie("CookieTest", "CookieValue")); Assert.AreEqual(3, request.Cookies.Count); var options = new RaygunRequestMessageOptions(Enumerable.Empty <string>(), Enumerable.Empty <string>(), new string[] { "cookie*" }, Enumerable.Empty <string>()); var message = RaygunRequestMessageBuilder.Build(request, options); Assert.AreEqual(2, message.Cookies.Count); Assert.AreEqual(1, CookieCount(message, "TestCookieTest")); Assert.AreEqual(1, CookieCount(message, "TestCookie")); }
public void IgnoreFormField_EndsWith() { var request = CreateWritableRequest(); request.Form.Add("TestFormFieldTest", "FormFieldValue"); request.Form.Add("TestFormField", "FormFieldValue"); request.Form.Add("FormFieldTest", "FormFieldValue"); Assert.AreEqual(3, request.Form.Count); var options = new RaygunRequestMessageOptions(new string[] { "*formfield" }, _empty, _empty, _empty); var message = RaygunRequestMessageBuilder.Build(request, options); Assert.AreEqual(2, message.Form.Count); Assert.IsTrue(message.Form.Contains("TestFormFieldTest")); Assert.IsTrue(message.Form.Contains("FormFieldTest")); }
public IRaygunMessageBuilder SetHttpDetails(HttpContext context, RaygunRequestMessageOptions options = null) { if (context != null) { HttpRequest request; try { request = context.Request; } catch (HttpException) { return(this); } _raygunMessage.Details.Request = RaygunRequestMessageBuilder.Build(request, options); } return(this); }
public IRaygunMessageBuilder SetHttpDetails(OwinEnvironment environment) { if (environment != null) { _raygunMessage.Details.Request = RaygunRequestMessageBuilder.Build(environment); if (_raygunMessage.Details.Response == null) { _raygunMessage.Details.Response = new RaygunResponseMessage { StatusCode = environment.Get <int>(OwinConstants.ResponseStatusCode), StatusDescription = environment.Get <string>(OwinConstants.ResponseReasonPhrase) }; } } return(this); }
private RaygunRequestMessage BuildRequestMessage() { RaygunRequestMessage requestMessage = null; HttpContext context = HttpContext.Current; if (context != null) { HttpRequest request = null; try { request = context.Request; } catch (HttpException) { } if (request != null) { requestMessage = RaygunRequestMessageBuilder.Build(request, _requestMessageOptions); } } return(requestMessage); }
public void HttpMethodTest() { var message = RaygunRequestMessageBuilder.Build(_defaultRequest, null); Assert.That(message.HttpMethod, Is.EqualTo("GET")); }
public void UrlTest() { var message = RaygunRequestMessageBuilder.Build(_defaultRequest, null); Assert.That(message.Url, Is.EqualTo("/")); }
public void HostNameTest() { var message = RaygunRequestMessageBuilder.Build(_defaultRequest, null); Assert.That(message.HostName, Is.EqualTo("google.com")); }