/// <summary> /// Setup client behaviour - attributes, events /// </summary> private void SetupBacktraceLibrary() { //setup tls support for tested server ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | (SecurityProtocolType)0x00000300 | (SecurityProtocolType)0x00000C00; //create Backtrace library configuration var configuartion = new BacktraceClientConfiguration(credentials) { ReportPerMin = 0 }; //create Backtrace database var database = new BacktraceDatabase(databaseSettings); //setup new client backtraceClient = new BacktraceClient(configuartion, database) { UnpackAggregateExcetpion = true }; //handle all unhandled application exceptions backtraceClient.HandleApplicationException(); //Add new scoped attributes backtraceClient.Attributes["ClientAttributeNumber"] = 1; backtraceClient.Attributes["ClientAttributeString"] = "string attribute"; backtraceClient.Attributes["ClientAttributeCustomClass"] = new { Name = "Backtrace", Type = "Library" }; backtraceClient.Attributes["ComplexObject"] = new Dictionary <string, Uri>() { { "backtrace.io", new Uri("http://backtrace.io") }, { "Google url", new Uri("http://google.com") } }; //Add your own handler to client API backtraceClient.BeforeSend = (BacktraceData model) => { var data = model; data.Attributes.Add("eventAtrtibute", "EventAttributeValue"); if (data.Classifier == null || !data.Classifier.Any()) { data.Attachments.Add("path to attachment"); } return(data); }; }
/// <summary> /// Initializes the singleton application object. This is the first line of authored code /// executed, and as such is the logical equivalent of main() or WinMain(). /// </summary> public App() { Trace.WriteLine("Backtrace Universal Windows Platform Example"); Trace.WriteLine($"Used database path: {localFolder.Path}"); //Client configuration var config = new BacktraceClientConfiguration(credentials); //database instance var database = new BacktraceDatabase(localFolder.Path); //client initialization backtraceClient = new BacktraceClient(config, database); this.InitializeComponent(); this.Suspending += OnSuspending; }
/// <summary> /// Setup client behaviour - attributes, events /// </summary> private void SetupBacktraceLibrary() { //create Backtrace library configuration var configuartion = new BacktraceClientConfiguration(credentials) { ReportPerMin = 0 }; //create Backtrace database var database = new BacktraceDatabase(databaseSettings); //setup new client backtraceClient = new BacktraceClient(configuartion, database); //handle all unhandled application exceptions backtraceClient.HandleApplicationException(); //Add new scoped attributes backtraceClient.Attributes["ClientAttributeNumber"] = 1; backtraceClient.Attributes["ClientAttributeString"] = "string attribute"; backtraceClient.Attributes["ClientAttributeCustomClass"] = new { Name = "Backtrace", Type = "Library" }; backtraceClient.Attributes["ComplexObject"] = new Dictionary <string, Uri>() { { "backtrace.io", new Uri("http://backtrace.io") }, { "Google url", new Uri("http://google.com") } }; backtraceClient.BeforeSend = (BacktraceData data) => { string json = Newtonsoft.Json.JsonConvert.SerializeObject(data); System.Diagnostics.Trace.WriteLine(json); return(data); }; //Add your own handler to client API backtraceClient.BeforeSend = (BacktraceData model) => { var data = model; data.Attributes.Add("eventAtrtibute", "EventAttributeValue"); if (data.Classifier == null || !data.Classifier.Any()) { data.Attachments.Add("path to attachment"); } return(data); }; }
protected override void OnCreate(Bundle savedInstanceState) { //setup database // we get external storage directory and special directory created for databse - Backtrace directory string directoryPath = Path.Combine(Android.OS.Environment.ExternalStorageDirectory.AbsolutePath, "Backtrace"); var database = new BacktraceDatabase(new BacktraceDatabaseSettings(directoryPath)); //setup client configuration var credentials = new BacktraceCredentials(ApplicationSettings.Host, ApplicationSettings.Token); var clientConfiguration = new BacktraceClientConfiguration(credentials); // Initialize new BacktraceClient BacktraceClient client = new BacktraceClient(clientConfiguration, database); // Send async report to a server with custom client message var result = client.SendAsync("Hello from Xamarin").Result; base.OnCreate(savedInstanceState); // Set our view from the "main" layout resource SetContentView(Resource.Layout.Main); }
static void Main() { //create Backtrace library configuration var configuartion = new BacktraceClientConfiguration(credentials) { ReportPerMin = 0 }; //create Backtrace - var database = new BacktraceDatabase(databaseSettings); //initialize new BacktraceClient backtraceClient = new BacktraceClient(configuartion, database); //Setting application exceptions backtraceClient.HandleApplicationException(); Application.EnableVisualStyles(); Application.ThreadException += backtraceClient.HandleApplicationThreadException; Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); }
/// <summary> /// Initializing Backtrace client instance with BacktraceCredentials /// </summary> /// <param name="setup">Backtrace client configuration</param> /// <param name="backtraceDatabase">Backtrace database</param> public BacktraceClient(BacktraceClientConfiguration setup, IBacktraceDatabase backtraceDatabase = null) : base(setup.Credentials, setup.ClientAttributes, backtraceDatabase, setup.ReportPerMin) { }
static void Main(string[] args) { //setup tls support for tested server ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | (SecurityProtocolType)0x00000300 | (SecurityProtocolType)0x00000C00; var credentials = new BacktraceCredentials(ApplicationSettings.Host, ApplicationSettings.Token); // create Backtrace library configuration var configuartion = new BacktraceClientConfiguration(credentials) { ReportPerMin = 0 }; //initialize new BacktraceClient with custom configuration section readed from file App.config //Client will be initialized with values stored in default section name "BacktraceCredentials" BacktraceClient backtraceClientWithSectionCredentials = new BacktraceClient(); //create new backtrace database settings BacktraceDatabaseSettings databaseSettings = new BacktraceDatabaseSettings(ApplicationSettings.DatabasePath); //create Backtrace database var database = new BacktraceDatabase(databaseSettings); //setup new client var backtraceClient = new BacktraceClient(credentials, databaseSettings); //Add new scoped attributes backtraceClient.Attributes["ClientAttributeNumber"] = 1; backtraceClient.Attributes["ClientAttributeString"] = "/string attribute"; backtraceClient.Attributes["ClientAttributeCustomClass"] = new { Name = "Backtrace", Type = "Library" }; //Add your own handler to client API backtraceClient.BeforeSend = (BacktraceData model) => { var data = model; data.Attributes.Add("eventAtrtibute", "EventAttributeValue"); return(data); }; //Report a new exception from current application try { try { int.Parse("abc"); } catch (Exception inner) { try { var openLog = File.Open("Not existing path", FileMode.Open); } catch { throw new FileNotFoundException("OutterException", inner); } } } catch (Exception e) { var report = new BacktraceReport( exception: e, attributes: new Dictionary <string, object>() { { "AttributeString", "string" } }, attachmentPaths: new List <string>() { @"path to file attachment", @"patch to another file attachment" } ); var response = backtraceClient.Send(report); } //Report a new message var sendResult = backtraceClient.Send("Client message"); }