示例#1
0
        /// <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);
            };
        }
示例#2
0
        /// <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;
        }
示例#3
0
        /// <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);
        }
示例#5
0
        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());
        }
示例#6
0
 /// <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)
 {
 }
示例#7
0
        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");
        }