Exemplo n.º 1
0
        /// <summary>
        /// Configures the Rollbar singleton-like notifier.
        /// </summary>
        private static void ConfigureRollbar()
        {
            RollbarInfrastructureConfig rollbarInfrastructureConfig = new RollbarInfrastructureConfig(
                RollbarSamplesSettings.AccessToken,
                RollbarSamplesSettings.Environment
                );

            RollbarDataSecurityOptions dataSecurityOptions = new RollbarDataSecurityOptions();

            dataSecurityOptions.ScrubFields = new string[]
            {
                "access_token", // normally, you do not want scrub this specific field (it is operationally critical), but it just proves safety net built into the notifier...
                "username",
            };
            rollbarInfrastructureConfig.RollbarLoggerConfig.RollbarDataSecurityOptions.Reconfigure(dataSecurityOptions);

            RollbarPayloadAdditionOptions payloadAdditionOptions = new RollbarPayloadAdditionOptions();

            payloadAdditionOptions.Person = new Person("007")
            {
                Email    = "*****@*****.**",
                UserName = "******"
            };
            rollbarInfrastructureConfig.RollbarLoggerConfig.RollbarPayloadAdditionOptions.Reconfigure(payloadAdditionOptions);

            RollbarInfrastructure.Instance.Init(rollbarInfrastructureConfig);

            // optionally, if you would like to monitor this Rollbar instance's internal events within your application:
            RollbarInfrastructure.Instance.QueueController.InternalEvent += OnRollbarInternalEvent;
        }
Exemplo n.º 2
0
        /// <summary>
        /// Configures the Rollbar singleton-like notifier.
        /// </summary>
        private static void ConfigureRollbarSingleton()
        {
            // minimally required Rollbar configuration:
            RollbarInfrastructureConfig config =
                new RollbarInfrastructureConfig(
                    RollbarSamplesSettings.AccessToken,
                    RollbarSamplesSettings.Environment
                    );

            // optional:
            RollbarOfflineStoreOptions offlineStoreOptions = new RollbarOfflineStoreOptions();

            offlineStoreOptions.EnableLocalPayloadStore = true;
            config.RollbarOfflineStoreOptions.Reconfigure(offlineStoreOptions);

            // optional:
            RollbarTelemetryOptions telemetryOptions = new RollbarTelemetryOptions(true, 3);

            config.RollbarTelemetryOptions.Reconfigure(telemetryOptions);

            // optional:
            //HttpProxyOptions proxyOptions = new HttpProxyOptions("http://something.com");
            //config.RollbarLoggerConfig.HttpProxyOptions.Reconfigure(proxyOptions);

            // optional:
            RollbarDataSecurityOptions dataSecurityOptions = new RollbarDataSecurityOptions();

            dataSecurityOptions.ScrubFields = new string[]
            {
                "access_token", // normally, you do not want scrub this specific field (it is operationally critical), but it just proves safety net built into the notifier...
                "username",
                "criticalObj[Sample.NetCore.ConsoleApp.Program+InstanceType]._baseNullField",
                "data.custom.criticalObj[Sample.NetCore.ConsoleApp.Program+InstanceType].<TypeName>k__BackingField",
            };
            config.RollbarLoggerConfig.RollbarDataSecurityOptions.Reconfigure(dataSecurityOptions);

            // optional:
            RollbarPayloadAdditionOptions payloadAdditionOptions = new RollbarPayloadAdditionOptions();

            payloadAdditionOptions.Person = new Person()
            {
                Id       = "007",
                Email    = "*****@*****.**",
                UserName = "******",
            };
            config.RollbarLoggerConfig.RollbarPayloadAdditionOptions.Reconfigure(payloadAdditionOptions);

            // initialize the Rollbar Infrastructure:
            RollbarInfrastructure.Instance.Init(config);

            // optional step if you would like to monitor all Rollbar instances' internal events within your application:
            RollbarInfrastructure.Instance.QueueController.InternalEvent += OnRollbarInternalEvent;

            // optional step if you would like to monitor this Rollbar instance's internal events within your application:
            //RollbarLocator.RollbarInstance.InternalEvent += OnRollbarInternalEvent;
        }
        public void TestBasicValidation(string token, string personId, int expectedTotalFailedRules)
        {
            Person person = null;

            if (personId != null)
            {
                person = new Person()
                {
                    Id = personId
                };
            }

            RollbarLoggerConfig           config          = new RollbarLoggerConfig(token);
            RollbarPayloadAdditionOptions additionOptions = new RollbarPayloadAdditionOptions();

            additionOptions.Person = person;
            config.RollbarPayloadAdditionOptions.Reconfigure(additionOptions);

            var failedValidationRules = config.Validate();

            Assert.AreEqual(expectedTotalFailedRules, failedValidationRules.Count);
        }
        public void TestRollbarConfigEqualityMethod()
        {
            RollbarDestinationOptions destinationOptions = new RollbarDestinationOptions("12345", "env1");
            RollbarLoggerConfig       rConfig            = new RollbarLoggerConfig();

            rConfig.RollbarDestinationOptions.Reconfigure(destinationOptions);

            // test the same config instance references:
            Assert.IsTrue(rConfig.Equals(rConfig), "Same instances are always equal.");

            destinationOptions = new RollbarDestinationOptions("12345", "env1"); // same as rConfig...
            RollbarLoggerConfig rConfigSimilar = new RollbarLoggerConfig();

            rConfigSimilar.RollbarDestinationOptions.Reconfigure(destinationOptions);


            destinationOptions = new RollbarDestinationOptions("12345", "env2");
            RollbarLoggerConfig rConfigOneDiff = new RollbarLoggerConfig();

            destinationOptions = new RollbarDestinationOptions("02345", "env1");
            RollbarLoggerConfig rConfigAnotherDiff = new RollbarLoggerConfig();

            destinationOptions = new RollbarDestinationOptions("02345", "env2");
            RollbarLoggerConfig rConfigTwoDiffs = new RollbarLoggerConfig();

            destinationOptions = new RollbarDestinationOptions("12345", null);
            RollbarLoggerConfig rConfigOneNullifed = new RollbarLoggerConfig();

            // test different config instances simple properties:
            Assert.IsTrue(rConfig.Equals(rConfigSimilar), "Simple properties: Similar instances are always equal.");
            Assert.IsFalse(rConfig.Equals(rConfigOneDiff), "Simple properties: One different property value makes unequal.");
            Assert.IsFalse(rConfig.Equals(rConfigAnotherDiff), "Simple properties: Another different property value makes unequal.");
            Assert.IsFalse(rConfig.Equals(rConfigTwoDiffs), "Simple properties: Multiple different property values make unequal.");
            Assert.IsFalse(rConfig.Equals(rConfigOneNullifed), "Simple properties: Nullified property of one config instance makes unequal.");

            // test structured/complex properties:
            Person person = new Person()
            {
                UserName = "******", Email = "*****@*****.**",
            };
            Person personSimilar = new Person()
            {
                UserName = "******", Email = "*****@*****.**",
            };
            Person personOneDiff = new Person()
            {
                UserName = "******", Email = "*****@*****.**",
            };
            Person personOneNull = new Person()
            {
                UserName = "******", Email = null,
            };

            RollbarPayloadAdditionOptions additionOptions = new RollbarPayloadAdditionOptions();

            additionOptions.Person = person;
            rConfig.RollbarPayloadAdditionOptions.Reconfigure(additionOptions);
            Assert.IsTrue(rConfig.Equals(rConfig), "Structured properties: Same instances are always equal.");

            additionOptions.Person = person;
            rConfigSimilar.RollbarPayloadAdditionOptions.Reconfigure(additionOptions);
            Assert.IsTrue(rConfig.Equals(rConfigSimilar), "Structured properties: Similar #1 instances are always equal.");

            additionOptions.Person = personSimilar;
            rConfigSimilar.RollbarPayloadAdditionOptions.Reconfigure(additionOptions);
            Assert.IsTrue(rConfig.Equals(rConfigSimilar), "Structured properties: Similar #2 instances are always equal.");

            additionOptions.Person = personOneDiff;
            rConfigSimilar.RollbarPayloadAdditionOptions.Reconfigure(additionOptions);
            Assert.IsFalse(rConfig.Equals(rConfigSimilar), "Structured properties: One different property value makes unequal.");

            additionOptions.Person = personOneNull;
            rConfigSimilar.RollbarPayloadAdditionOptions.Reconfigure(additionOptions);
            Assert.IsFalse(rConfig.Equals(rConfigSimilar), "Structured properties: Nullified property of one config instance makes unequal.");
        }