예제 #1
0
        //
        // This method is invoked when the application has loaded and is ready to run. In this
        // method you should instantiate the window, load the UI into it and then make the window
        // visible.
        //
        // You have 17 seconds to return from this method, or iOS will terminate your application.
        //
        public override bool FinishedLaunching(UIApplication app, NSDictionary options)
        {
            // create new BugsnagClient which will monitor for errors and send them to the server
            bugsnagClient = new BugsnagClient("MY-BUGSNAG-APIKEY-HERE")
            {
                DeviceId          = GetInstalId(),
                ProjectNamespaces = new List <string> ()
                {
                    "Sample."
                },
                ReleaseStage = "development",
            };

            // You can associate errors with a specific user, if you want
            bugsnagClient.SetUser("1234", "*****@*****.**", "John Doe");

            // create a new window instance based on the screen size
            window = new UIWindow(UIScreen.MainScreen.Bounds);

            // If you have defined a root view controller, set it here:
            window.RootViewController = new DemoViewController();

            // make the window visible
            window.MakeKeyAndVisible();

            return(true);
        }
        public AppDomainInterceptor(BugsnagClient client)
        {
            if (client == null)
            {
                throw new ArgumentNullException("client");
            }
            this.client = client;

            AppDomain.CurrentDomain.UnhandledException += HandleUnhandledException;
        }
예제 #3
0
        public AndroidInterceptor(BugsnagClient client)
        {
            if (client == null)
            {
                throw new ArgumentNullException("client");
            }
            this.client = client;

            AndroidEnvironment.UnhandledExceptionRaiser += HandleUnhandledManagedException;
            JavaExceptionHandler.Install(client);
        }
예제 #4
0
 private Dictionary <string, object> DeserializePropertiers(string properties)
 {
     try
     {
         return(JsonUtils.DeserializeProperties(properties));
     }
     catch (Exception ex)
     {
         BugsnagClient.Notify(ex);
     }
     return(new Dictionary <string, object>());
 }
예제 #5
0
            public static void Install(BugsnagClient client)
            {
                var current = Java.Lang.Thread.DefaultUncaughtExceptionHandler;
                var self    = current as JavaExceptionHandler;

                if (self != null)
                {
                    current = self.nextHandler;
                }

                Java.Lang.Thread.DefaultUncaughtExceptionHandler = new JavaExceptionHandler(client, current);
            }
예제 #6
0
        private void SetupBugsnag()
        {
            if (bugsnagClient == null)
            {
                bugsnagClient = new BugsnagClient("testing", false)
                {
                    DeviceId          = Guid.NewGuid().ToString(),
                    ProjectNamespaces = new List <string> ()
                    {
                        "Bugsnag."
                    },
                    ReleaseStage = "development",
                };
            }

            bugsnagClient.Notifier.StoreOnly = true;
        }
예제 #7
0
        private bool CheckErrors()
        {
            var errorsDir = BugsnagClient.MakeErrorCacheDir(this);
            var files     = Directory.GetFiles(errorsDir);

            if (files.Length == 0)
            {
                return(false);
            }

            foreach (var file in files)
            {
                Log.Error(Tag, file);
                Log.Error(Tag, File.ReadAllText(file));

                File.Delete(file);
            }

            return(true);
        }
예제 #8
0
        private bool CheckErrors()
        {
            var errorsDir = BugsnagClient.MakeErrorCacheDir();
            var files     = Directory.GetFiles(errorsDir);

            if (files.Length == 0)
            {
                return(false);
            }

            foreach (var file in files)
            {
                Console.WriteLine("{0}:", file);
                Console.WriteLine(File.ReadAllText(file));
                Console.WriteLine("===========");

                File.Delete(file);
            }

            return(true);
        }
예제 #9
0
        public override void OnCreate()
        {
            base.OnCreate();

            if (bugsnagClient == null)
            {
                // create new BugsnagClient which will monitor for errors and send them to the server
                bugsnagClient = new BugsnagClient(this, "MY-BUGSNAG-APIKEY-HERE")
                {
                    DeviceId          = GetInstalId(),
                    ProjectNamespaces = new List <string> ()
                    {
                        "Sample."
                    },
                    // By default Android library can guess the release stage between "production" and "development"
                    // ReleaseStage = "development",
                };
            }

            // You can associate errors with a specific user, if you want
            bugsnagClient.SetUser("1234", "*****@*****.**", "John Doe");
        }