Example #1
0
        private void VerifyPropertiesInTelemetry()
        {
            // Mock channel to validate that our appender is trying to send logs
#pragma warning disable CS0618 // Type or member is obsolete
            TelemetryConfiguration.Active.TelemetryChannel = this.adapterHelper.Channel;
#pragma warning restore CS0618 // Type or member is obsolete

            // Set up error handler to intercept exception
            ApplicationInsightsAppender aiAppender   = (ApplicationInsightsAppender)LogManager.GetRepository(callingAssembly).GetAppenders()[0];
            OnlyOnceErrorHandler        errorHandler = new OnlyOnceErrorHandler();
            aiAppender.ErrorHandler = errorHandler;

            // Log something
            ILog logger = LogManager.GetLogger(callingAssembly, "TestAIAppender");
            logger.Debug("Trace Debug");

            ITelemetry[] sentItems = this.adapterHelper.Channel.SentItems;
            Assert.IsTrue(sentItems.Count() == 1);
            var telemetry = (TraceTelemetry)sentItems.First();
            IDictionary <string, string> properties = telemetry.Properties;
            Assert.IsTrue(properties.Any());

            string value;

            properties.TryGetValue("LoggerName", out value);
            Assert.AreEqual("TestAIAppender", value);

            Assert.IsTrue(properties.ContainsKey("ThreadName"));
            Assert.IsTrue(properties.ContainsKey("ClassName"));
            Assert.IsTrue(properties.ContainsKey("FileName"));
            Assert.IsTrue(properties.ContainsKey("MethodName"));
            Assert.IsTrue(properties.ContainsKey("LineNumber"));
            Assert.IsTrue(properties.ContainsKey("Domain"));
        }
        public ApplicationInsightsAppender SetupAiAppender(string appenderName, string instrumentationKey)
        {
            var hierarchyRoot = GetHierarchyRoot();

            RemoveAiAppender(appenderName);

            var patternLayout = new PatternLayout
            {
                ConversionPattern = "%message"
            };

            patternLayout.ActivateOptions();

            var aiAppender = new ApplicationInsightsAppender
            {
                Name = appenderName,
                InstrumentationKey = instrumentationKey,
                Layout             = patternLayout
            };

            aiAppender.ActivateOptions();

            hierarchyRoot.AddAppender(aiAppender);

            return(aiAppender);
        }
Example #3
0
        private void VerifyInitializationSuccess(Action testAction, string expectedInstrumentationKey)
        {
            this.VerifyInitializationError(testAction, 0, null);

            ApplicationInsightsAppender aiAppender = (ApplicationInsightsAppender)log4net.LogManager.GetRepository(callingAssembly).GetAppenders()[0];

            Assert.AreEqual(expectedInstrumentationKey, aiAppender.InstrumentationKey);
        }
        /// <summary>
        /// Creating Application Insights Appender
        /// </summary>
        /// <param name="TelemetryInstrumentationKey"></param>
        /// <param name="patternLayout"></param>
        private static IAppender CreateAIAppender(string TelemetryInstrumentationKey, PatternLayout patternLayout)
        {
            ApplicationInsightsAppender aIAppender = new ApplicationInsightsAppender();

            aIAppender.Name = "ApplicationInsightsAppender";
            aIAppender.InstrumentationKey = TelemetryInstrumentationKey;
            patternLayout.ActivateOptions();
            aIAppender.Layout = patternLayout;
            aIAppender.ActivateOptions();
            _aIAppender = aIAppender;

            return(aIAppender);
        }
Example #5
0
        private void SendMessagesToMockChannel(string instrumentationKey)
        {
            // Set up error handler to intercept exception
            ApplicationInsightsAppender aiAppender = (ApplicationInsightsAppender)log4net.LogManager.GetRepository(callingAssembly).GetAppenders()[0];

            log4net.Util.OnlyOnceErrorHandler errorHandler = new log4net.Util.OnlyOnceErrorHandler();
            aiAppender.ErrorHandler = errorHandler;

            // Log something
            ILog logger = log4net.LogManager.GetLogger(callingAssembly, "TestAIAppender");

            logger.Debug("Trace Debug");
            logger.Error("Trace Error");
            logger.Fatal("Trace Fatal");
            logger.Info("Trace Info");
            logger.Warn("Trace Warn");

            AdapterHelper.ValidateChannel(this.adapterHelper, instrumentationKey, 5);
        }
Example #6
0
        public void ValidateLoggingIsWorking()
        {
            string instrumentationKey = "93d9c2b7-e633-4571-8520-d391511a1df5";

            ApplicationInsightsAppenderTests.InitializeLog4NetAIAdapter(string.Format(InvariantCulture, @"<InstrumentationKey value=""{0}"" />", instrumentationKey));

            // Set up error handler to intercept exception
            ApplicationInsightsAppender aiAppender = (ApplicationInsightsAppender)log4net.LogManager.GetRepository(callingAssembly).GetAppenders()[0];

            log4net.Util.OnlyOnceErrorHandler errorHandler = new log4net.Util.OnlyOnceErrorHandler();
            aiAppender.ErrorHandler = errorHandler;

            // Log something
            ILog logger = log4net.LogManager.GetLogger(callingAssembly, "TestAIAppender");

            for (int i = 0; i < 1500; i++)
            {
                logger.Debug("Trace Debug" + i + DateTime.Now);
            }

            Assert.AreEqual(instrumentationKey, aiAppender.TelemetryClient.Context.InstrumentationKey);
            Assert.IsNull(errorHandler.Exception);
        }