private RavenWrapper() { #if !TEST Func <Requester, Requester> removeUserId = new Func <Requester, Requester>(request => { //HttpRequester request = req as RequesterData; //GDPR compliant, no personal data sent: no server name, no username stored, no ip address request.Packet.ServerName = "linqbridgevs"; request.Packet.Contexts.Device.Name = "linqbridgevs"; request.Packet.User.Username = CommonRegistryConfigurations.GetUniqueGuid(VisualStudioVersion); request.Packet.Release = "1.4.6"; //read it from somewhere request.Packet.User.IpAddress = "0.0.0.0"; return(request); }); Action <Exception> onSendError = new Action <Exception>(ex => { Trace.WriteLine("Error sending report to Sentry.io"); Trace.WriteLine(ex.Message); Trace.WriteLine(ex.StackTrace); }); _ravenClient = new RavenClient(RavenClientId) { BeforeSend = removeUserId, ErrorOnCapture = onSendError, Timeout = TimeSpan.FromMilliseconds(2000) //should fail early if it can't send a message }; #endif }
public static void Capture(this Exception exception, string vsVersion, ErrorLevel errorLevel = ErrorLevel.Error, string message = "") { if (string.IsNullOrEmpty(vsVersion)) { return; } if (!CommonRegistryConfigurations.IsErrorTrackingEnabled(vsVersion)) { return; } Func <Requester, Requester> removeUserId = new Func <Requester, Requester>(request => { //GDPR compliant, no personal data sent: no server name, no username stored, no ip address request.Packet.ServerName = LinqBridgeVs; request.Packet.Contexts.Device.Name = LinqBridgeVs; request.Packet.User.Username = CommonRegistryConfigurations.GetUniqueGuid(vsVersion); request.Packet.Release = Assembly.GetExecutingAssembly().VersionNumber(); request.Packet.User.IpAddress = "0.0.0.0"; return(request); }); SentryEvent sentryEvent = new SentryEvent(exception) { Message = message, Level = errorLevel }; sentryEvent.Tags.Add("Visual Studio Version", vsVersion); RavenClient ravenClient = new RavenClient(RavenClientId) { BeforeSend = removeUserId, ErrorOnCapture = OnSendError, Timeout = TimeSpan.FromMilliseconds(Timeout) //should fail early if it can't send a message }; ravenClient.Capture(sentryEvent); }