Exemplo n.º 1
0
        public void InternalMessageTest()
        {
            try {
                LogInternal.InternalMessage = false;
                LogInternal.InternalDebug   = true;

                XmlDocument log4netConfig = new XmlDocument();
                log4netConfig.LoadXml(@"
                <Soyo.Base.Log>
                  <appender name=""LogLogAppender"" type=""UnitTest.Base.Log.LoggerRepository.LogLogAppender"">
                    <layout type=""Soyo.Base.Text.LayoutLoggerSimple"" />
                  </appender>
                  <appender name=""AppenderMemory"" type=""Soyo.Base.Text.AppenderMemory"">
                    <layout type=""Soyo.Base.Text.LayoutLoggerSimple"" />
                  </appender>
                  <root>
                    <level value=""ALL"" />
                    <appender-ref ref=""LogLogAppender"" />
                    <appender-ref ref=""AppenderMemory"" />
                  </root>  
                </Soyo.Base.Log>");

                ILoggerController rep = LogManager.CreateController(Guid.NewGuid().ToString());
                rep.ChangeConfigEvent += new LoggerControllerEventHandler(rep_ConfigurationChanged);

                ICollection <LogInternal> configurationMessages = XmlConfig.Config(rep, log4netConfig["Soyo.Base.Log"]);

                Assert.IsTrue(configurationMessages.Count > 0);
            } finally {
                LogInternal.InternalMessage = true;
                LogInternal.InternalDebug   = false;
            }
        }
Exemplo n.º 2
0
        public void MethodNameCategoryTest()
        {
            CategoryTraceListener categoryTraceListener = new CategoryTraceListener();

            Trace.Listeners.Clear();
            Trace.Listeners.Add(categoryTraceListener);

            ILoggerController rep = LogManager.CreateController(Guid.NewGuid().ToString());

            AppenderTrace traceAppender = new AppenderTrace();
            LayoutPattern methodLayout  = new LayoutPattern("%method");

            methodLayout.Activate();
            traceAppender.Category = methodLayout;
            traceAppender.Layout   = new LayoutLoggerSimple();
            traceAppender.Activate();

            BasicConfig.Config(rep, traceAppender);

            ILog log = LogManager.Get(rep.Name, GetType());

            log.Debug("Message");

            Assert.AreEqual(
                System.Reflection.MethodInfo.GetCurrentMethod().Name,
                categoryTraceListener.Category);
        }
        public void SetControllerPropertiesInXmlFile()
        {
            // LOG4NET-53: Allow repository properties to be set in the config file
            XmlDocument log4netConfig = new XmlDocument();

            log4netConfig.LoadXml(@"
                <Soyo.Base.Log>
                  <property>
                    <key value=""two-plus-two"" />
                    <value value=""4"" />
                  </property>
                  <appender name=""StringAppender"" type=""UnitTest.Base.Log.StringAppender"">
                    <layout type=""Soyo.Base.Text.LayoutLoggerSimple"" />
                  </appender>
                  <root>
                    <level value=""ALL"" />
                    <appender-ref ref=""StringAppender"" />
                  </root>
                </Soyo.Base.Log>");

            ILoggerController rep = LogManager.CreateController(Guid.NewGuid().ToString());

            XmlConfig.Config(rep, log4netConfig["Soyo.Base.Log"]);

            Assert.AreEqual("4", rep.PropertySet["two-plus-two"]);
            Assert.IsNull(rep.PropertySet["one-plus-one"]);
        }
Exemplo n.º 4
0
        public void BracketsInStackTracesKeepLogWellFormed()
        {
            LayoutLoggerXml layout         = new LayoutLoggerXml();
            StringAppender  stringAppender = new StringAppender();

            stringAppender.Layout = layout;

            ILoggerController rep = LogManager.CreateController(Guid.NewGuid().ToString());

            BasicConfig.Config(rep, stringAppender);
            ILog         log1 = LogManager.Get(rep.Name, "TestLogger");
            Action <int> bar  = foo => {
                try {
                    throw new NullReferenceException();
                } catch (Exception ex) {
                    log1.Error(string.Format("Error {0}", foo), ex);
                }
            };

            bar(42);

            // really only asserts there is no exception
            var loggedDoc = new XmlDocument();

            loggedDoc.LoadXml(stringAppender.GetString());
        }
Exemplo n.º 5
0
        public void TestShutdownAndReconfigure()
        {
            ILoggerController rep = LogManager.CreateController(Guid.NewGuid().ToString());

            StringAppender stringAppender = new StringAppender();

            stringAppender.Layout = new LayoutPattern("%m");
            BasicConfig.Config(rep, stringAppender);

            ILog log1 = LogManager.Get(rep.Name, "logger1");

            log1.Info("TestMessage1");
            Assert.AreEqual("TestMessage1", stringAppender.GetString(), "Test logging configured");
            stringAppender.Reset();

            rep.Terminate();

            log1.Info("TestMessage2");
            Assert.AreEqual("", stringAppender.GetString(), "Test not logging while shutdown");
            stringAppender.Reset();

            stringAppender        = new StringAppender();
            stringAppender.Layout = new LayoutPattern("%m");
            BasicConfig.Config(rep, stringAppender);

            log1.Info("TestMessage3");
            Assert.AreEqual("TestMessage3", stringAppender.GetString(), "Test logging re-configured");
            stringAppender.Reset();
        }
Exemplo n.º 6
0
        public void TestThreadStackPattern2()
        {
            StringAppender stringAppender = new StringAppender();

            stringAppender.Layout = new LayoutPattern("%property{" + Utils.PROPERTY_KEY + "}");

            ILoggerController rep = LogManager.CreateController(Guid.NewGuid().ToString());

            BasicConfig.Config(rep, stringAppender);

            ILog log1 = LogManager.Get(rep.Name, "TestThreadStackPattern");

            log1.Info("TestMessage");
            Assert.AreEqual(TextDefault.NullText, stringAppender.GetString(), "Test no thread stack value set");
            stringAppender.Reset();

            using (ThreadContext.Stacks[Utils.PROPERTY_KEY].Push("val1")) {
                log1.Info("TestMessage");
                Assert.AreEqual("val1", stringAppender.GetString(), "Test thread stack value set");
                stringAppender.Reset();

                using (ThreadContext.Stacks[Utils.PROPERTY_KEY].Push("val2")) {
                    log1.Info("TestMessage");
                    Assert.AreEqual("val1 val2", stringAppender.GetString(), "Test thread stack value pushed 2nd val");
                    stringAppender.Reset();
                }
            }

            log1.Info("TestMessage");
            Assert.AreEqual(TextDefault.NullText, stringAppender.GetString(), "Test thread stack value removed");
            stringAppender.Reset();
        }
Exemplo n.º 7
0
        public void TestGlobalPropertiesPattern()
        {
            StringAppender stringAppender = new StringAppender();

            stringAppender.Layout = NewPatternLayout("%property{" + Utils.PROPERTY_KEY + "}");

            ILoggerController rep = LogManager.CreateController(Guid.NewGuid().ToString());

            BasicConfig.Config(rep, stringAppender);

            ILog log1 = LogManager.Get(rep.Name, "TestGlobalProperiesPattern");

            log1.Info("TestMessage");
            Assert.AreEqual(TextDefault.NullText, stringAppender.GetString(), "Test no global properties value set");
            stringAppender.Reset();

            GlobalContext.Set(Utils.PROPERTY_KEY, "val1");

            log1.Info("TestMessage");
            Assert.AreEqual("val1", stringAppender.GetString(), "Test global properties value set");
            stringAppender.Reset();

            GlobalContext.Remove(Utils.PROPERTY_KEY);

            log1.Info("TestMessage");
            Assert.AreEqual(TextDefault.NullText, stringAppender.GetString(), "Test global properties value removed");
            stringAppender.Reset();
        }
        public void TestThreadSafety()
        {
            ILoggerController rep = LogManager.CreateController(Guid.NewGuid().ToString());
            var memoryAppender    = new AppenderMemory();
            var patternLayout     = new LayoutPattern();

            memoryAppender.Layout = patternLayout;
            memoryAppender.Activate();
            BasicConfig.Config(rep, memoryAppender);

            cThreadsRunning = cThreadsMax;
            var threads = Enumerable.Range(0, cThreadsMax)
                          .Select(i => new Thread(LogMessages(rep.Name)))
                          .ToList();

            foreach (var thread in threads)
            {
                thread.Start();
            }

            long cEventsRead = 0;

            while (cThreadsRunning > 0)
            {
                var events = memoryAppender.PopAllInputs();
                cEventsRead += events.Length;
            }
            foreach (var thread in threads)
            {
                thread.Join();
            }
            cEventsRead += memoryAppender.PopAllInputs().Length;
            Assert.AreEqual(cEventsExpected, cEventsRead, "Log events were lost.");
        }
Exemplo n.º 9
0
        public void TestLogFormatApi_NoException()
        {
            StringAppender stringAppender = new StringAppender();

            stringAppender.Threshold = Level.Off;
            stringAppender.Layout    = new LayoutPattern("%level:%message");

            ILoggerController rep = LogManager.CreateController(Guid.NewGuid().ToString());

            BasicConfig.Config(rep, stringAppender);

            ILog log1 = LogManager.Get(rep.Name, "TestLogFormatApi_Exception");

            // ***
            log1.Exception("TestMessage");
            Assert.AreEqual("", stringAppender.GetString(), "Test simple EXCEPTION event 1");
            stringAppender.Reset();

            // ***
            log1.Exception("TestMessage", null);
            Assert.AreEqual("", stringAppender.GetString(), "Test simple EXCEPTION event 2");
            stringAppender.Reset();

            // ***
            log1.Exception("TestMessage", new Exception("Exception message"));
            Assert.AreEqual("", stringAppender.GetString(), "Test simple EXCEPTION event 3");
            stringAppender.Reset();

            // ***
            log1.ExceptionFormat("a{0}", "1");
            Assert.AreEqual("", stringAppender.GetString(), "Test formatted EXCEPTION event with 1 parm");
            stringAppender.Reset();

            // ***
            log1.ExceptionFormat("a{0}b{1}", "1", "2");
            Assert.AreEqual("", stringAppender.GetString(), "Test formatted EXCEPTION event with 2 parm");
            stringAppender.Reset();

            // ***
            log1.ExceptionFormat("a{0}b{1}c{2}", "1", "2", "3");
            Assert.AreEqual("", stringAppender.GetString(), "Test formatted EXCEPTION event with 3 parm");
            stringAppender.Reset();


            // ***
            log1.ExceptionFormat("a{0}b{1}c{2}d{3}e{4}f", "Q", "W", "E", "R", "T", "Y");
            Assert.AreEqual("", stringAppender.GetString(), "Test formatted EXCEPTION event with 5 parms (only 4 used)");
            stringAppender.Reset();

            // ***
            log1.ExceptionFormat(null, "Before {0} After {1}", "Middle", "End");
            Assert.AreEqual("", stringAppender.GetString(), "Test formatting with null provider");
            stringAppender.Reset();

            // ***
            log1.ExceptionFormat(new CultureInfo("en"), "Before {0} After {1}", "Middle", "End");
            Assert.AreEqual("", stringAppender.GetString(), "Test formatting with 'en' provider");
            stringAppender.Reset();
        }
Exemplo n.º 10
0
        /// <summary>
        /// Destroys the logger hierarchy created by <see cref="SmtpPickupDirAppenderTest.CreateLogger"/>
        /// </summary>
        private static void DestroyLogger()
        {
            ILoggerController h = LogManager.GetController("TestRepository");

            h.Reset();
            //Replace the repository selector so that we can recreate the hierarchy with the same name if necessary
            LoggerController.Selector = new LoggerControllerSelector(typeof(LoggerController));
        }
Exemplo n.º 11
0
        public void TestLogFormatApi_Debug()
        {
            StringAppender stringAppender = new StringAppender();

            stringAppender.Layout = new LayoutPattern("%level:%message");

            ILoggerController rep = LogManager.CreateController(Guid.NewGuid().ToString());

            BasicConfig.Config(rep, stringAppender);

            ILog log1 = LogManager.Get(rep.Name, "TestLogFormatApi_Debug");

            // ***
            log1.Debug("TestMessage");
            Assert.AreEqual("DEBUG:TestMessage", stringAppender.GetString(), "Test simple DEBUG event 1");
            stringAppender.Reset();

            // ***
            log1.Debug("TestMessage", null);
            Assert.AreEqual("DEBUG:TestMessage", stringAppender.GetString(), "Test simple DEBUG event 2");
            stringAppender.Reset();

            // ***
            log1.Debug("TestMessage", new Exception("Exception message"));
            Assert.AreEqual("DEBUG:TestMessage\r\nException: Message: Exception message" + Environment.NewLine + "System.Exception: Exception message" + Environment.NewLine, stringAppender.GetString(), "Test simple DEBUG event 3");
            stringAppender.Reset();

            // ***
            log1.DebugFormat("a{0}", "1");
            Assert.AreEqual("DEBUG:a1", stringAppender.GetString(), "Test formatted DEBUG event with 1 parm");
            stringAppender.Reset();

            // ***
            log1.DebugFormat("a{0}b{1}", "1", "2");
            Assert.AreEqual("DEBUG:a1b2", stringAppender.GetString(), "Test formatted DEBUG event with 2 parm");
            stringAppender.Reset();

            // ***
            log1.DebugFormat("a{0}b{1}c{2}", "1", "2", "3");
            Assert.AreEqual("DEBUG:a1b2c3", stringAppender.GetString(), "Test formatted DEBUG event with 3 parm");
            stringAppender.Reset();


            // ***
            log1.DebugFormat("a{0}b{1}c{2}d{3}e{4}f", "Q", "W", "E", "R", "T", "Y");
            Assert.AreEqual("DEBUG:aQbWcEdReTf", stringAppender.GetString(), "Test formatted DEBUG event with 5 parms (only 4 used)");
            stringAppender.Reset();

            // ***
            log1.DebugFormat(null, "Before {0} After {1}", "Middle", "End");
            Assert.AreEqual("DEBUG:Before Middle After End", stringAppender.GetString(), "Test formatting with null provider");
            stringAppender.Reset();

            // ***
            log1.DebugFormat(new CultureInfo("en"), "Before {0} After {1}", "Middle", "End");
            Assert.AreEqual("DEBUG:Before Middle After End", stringAppender.GetString(), "Test formatting with 'en' provider");
            stringAppender.Reset();
        }
Exemplo n.º 12
0
        public void TestFormatString()
        {
            StringAppender stringAppender = new StringAppender();

            stringAppender.Layout = new LayoutPattern("%message");

            ILoggerController rep = LogManager.CreateController(Guid.NewGuid().ToString());

            BasicConfig.Config(rep, stringAppender);

            ILog log1 = LogManager.Get(rep.Name, "TestFormatString");

            // ***
            log1.Info("TestMessage");
            Assert.AreEqual("TestMessage", stringAppender.GetString(), "Test simple INFO event");
            stringAppender.Reset();


            // ***
            log1.DebugFormat("Before {0} After", "Middle");
            Assert.AreEqual("Before Middle After", stringAppender.GetString(), "Test simple formatted DEBUG event");
            stringAppender.Reset();

            // ***
            log1.InfoFormat("Before {0} After", "Middle");
            Assert.AreEqual("Before Middle After", stringAppender.GetString(), "Test simple formatted INFO event");
            stringAppender.Reset();

            // ***
            log1.WarnFormat("Before {0} After", "Middle");
            Assert.AreEqual("Before Middle After", stringAppender.GetString(), "Test simple formatted WARN event");
            stringAppender.Reset();

            // ***
            log1.ErrorFormat("Before {0} After", "Middle");
            Assert.AreEqual("Before Middle After", stringAppender.GetString(), "Test simple formatted ERROR event");
            stringAppender.Reset();

            // ***
            log1.ExceptionFormat("Before {0} After", "Middle");
            Assert.AreEqual("Before Middle After", stringAppender.GetString(), "Test simple formatted FATAL event");
            stringAppender.Reset();


            // ***
            log1.InfoFormat("Before {0} After {1}", "Middle", "End");
            Assert.AreEqual("Before Middle After End", stringAppender.GetString(), "Test simple formatted INFO event 2");
            stringAppender.Reset();

            // ***
            log1.InfoFormat("IGNORE THIS WARNING - EXCEPTION EXPECTED Before {0} After {1} {2}", "Middle", "End");
            Assert.AreEqual(STRING_FORMAT_ERROR, stringAppender.GetString(), "Test formatting error");
            stringAppender.Reset();
        }
Exemplo n.º 13
0
        private static void ExecuteBackgroundThread()
        {
            ILog log = LogManager.Get(TestBackgroundThreadContextPropertyRepository, "ExecuteBackGroundThread");

            ThreadContext.PropertySet["DateTimeTodayToString"] = DateTime.Today.ToString();

            log.Info("TestMessage");

            ILoggerController hierarchyLoggingRepository = log.Logger.Controller;
            StringAppender    stringAppender             = (StringAppender)hierarchyLoggingRepository.Root.AppenderSet[0];

            Assert.AreEqual(DateTime.Today.ToString(), stringAppender.GetString());
        }
        private void SetupController()
        {
            controller_ = new LoggerController();

            eventRaisingAppender_ = new EventRaisingAppender();
            eventRaisingAppender_.LoggingEventAppended += eventRaisingAppender_LoggingEventAppended;

            controller_.Root.Level = Level.All;
            controller_.Root.AddAppender(eventRaisingAppender_);

            BasicConfig.Config(controller_, eventRaisingAppender_);
            logger_ = controller_.Get("test");
        }
Exemplo n.º 15
0
        public void TestDisable1()
        {
            CountingAppender caRoot = new CountingAppender();
            ILogger          root   = Utils.GetController().Root;

            root.AddAppender(caRoot);

            ILoggerController h = Utils.GetController();

            h.Threshold = Level.Info;
            h.Initialize();

            Assert.AreEqual(caRoot.Counter, 0);

            root.Log(Level.Debug, MSG, null);
            Assert.AreEqual(caRoot.Counter, 0);
            root.Log(Level.Info, MSG, null);
            Assert.AreEqual(caRoot.Counter, 1);
            root.Log(Level.Warn, MSG, null);
            Assert.AreEqual(caRoot.Counter, 2);
            root.Log(Level.Warn, MSG, null);
            Assert.AreEqual(caRoot.Counter, 3);

            h.Threshold = Level.Warn;
            root.Log(Level.Debug, MSG, null);
            Assert.AreEqual(caRoot.Counter, 3);
            root.Log(Level.Info, MSG, null);
            Assert.AreEqual(caRoot.Counter, 3);
            root.Log(Level.Warn, MSG, null);
            Assert.AreEqual(caRoot.Counter, 4);
            root.Log(Level.Error, MSG, null);
            Assert.AreEqual(caRoot.Counter, 5);
            root.Log(Level.Assert, MSG, null);
            Assert.AreEqual(caRoot.Counter, 6);
            root.Log(Level.Exception, MSG, null);
            Assert.AreEqual(caRoot.Counter, 7);

            h.Threshold = Level.Off;
            root.Log(Level.Debug, MSG, null);
            Assert.AreEqual(caRoot.Counter, 7);
            root.Log(Level.Info, MSG, null);
            Assert.AreEqual(caRoot.Counter, 7);
            root.Log(Level.Warn, MSG, null);
            Assert.AreEqual(caRoot.Counter, 7);
            root.Log(Level.Error, MSG, null);
            Assert.AreEqual(caRoot.Counter, 7);
            root.Log(Level.Assert, MSG, null);
            Assert.AreEqual(caRoot.Counter, 7);
            root.Log(Level.Exception, MSG, null);
            Assert.AreEqual(caRoot.Counter, 7);
        }
        public void PatternConverterProperties()
        {
            XmlDocument log4netConfig = new XmlDocument();

            log4netConfig.LoadXml(@"
                <Soyo.Base.Log>
                  <appender name=""PatternStringAppender"" type=""UnitTest.Base.Log.PatternStringAppender"">
                    <layout type=""Soyo.Base.Text.LayoutLoggerSimple"" />
                    <setting>
                        <converter>
                            <name value=""propertyKeyCount"" />
                            <type value=""UnitTest.Base.Log.PropertyKeyCountPatternConverter"" />
                            <property>
                                <key value=""one-plus-one"" />
                                <value value=""2"" />
                            </property>
                            <property>
                               <key value=""two-plus-two"" />
                               <value value=""4"" />
                            </property> 
                        </converter>
                        <pattern value=""%propertyKeyCount"" />
                    </setting>
                  </appender>
                  <root>
                    <level value=""ALL"" />                  
                    <appender-ref ref=""PatternStringAppender"" />
                  </root>  
                </Soyo.Base.Log>");

            ILoggerController rep = LogManager.CreateController(Guid.NewGuid().ToString());

            XmlConfig.Config(rep, log4netConfig["Soyo.Base.Log"]);

            ILog log = LogManager.Get(rep.Name, "PatternConverterProperties");

            log.Debug("Message");

            PropertyKeyCountPatternConverter converter =
                PropertyKeyCountPatternConverter.MostRecentInstance;

            Assert.AreEqual(2, converter.PropertySet.Count);
            Assert.AreEqual("4", converter.PropertySet["two-plus-two"]);

            PatternStringAppender appender =
                (PatternStringAppender)LogManager.GetController(rep.Name).AppenderSet[0];

            Assert.AreEqual("2", appender.Setting.Format());
        }
Exemplo n.º 17
0
        public void TestBackgroundThreadContextProperty()
        {
            StringAppender stringAppender = new StringAppender();

            stringAppender.Layout = new LayoutPattern("%property{DateTimeTodayToString}");

            ILoggerController rep = LogManager.CreateController(TestBackgroundThreadContextPropertyRepository = "TestBackgroundThreadContextPropertyRepository" + Guid.NewGuid().ToString());

            BasicConfig.Config(rep, stringAppender);

            System.Threading.Thread thread = new System.Threading.Thread(new ThreadStart(ExecuteBackgroundThread));
            thread.Start();

            System.Threading.Thread.CurrentThread.Join(2000);
        }
Exemplo n.º 18
0
        public void TestHierarchy1()
        {
            ILoggerController h = LogManager.CreateController("");

            h.Root.Level = Level.Error;

            ILogger a0 = h.Get("a");

            Assert.AreEqual("a", a0.Name);
            Assert.IsNull(a0.Level);
            Assert.AreSame(Level.Error, a0.ActiveLevel);

            ILogger a1 = h.Get("a");

            Assert.AreSame(a0, a1);
        }
Exemplo n.º 19
0
        public void TestStackTracePattern()
        {
            StringAppender stringAppender = new StringAppender();

            stringAppender.Layout = NewPatternLayout("%stacktrace{2}");

            ILoggerController rep = LogManager.CreateController(Guid.NewGuid().ToString());

            BasicConfig.Config(rep, stringAppender);

            ILog log1 = LogManager.Get(rep.Name, "TestStackTracePattern");

            log1.Info("TestMessage");
            StringAssert.EndsWith("PatternLayoutTest.TestStackTracePattern", stringAppender.GetString(), "stack trace value set");
            stringAppender.Reset();
        }
Exemplo n.º 20
0
        public void FilterConfigurationTest()
        {
            XmlDocument log4netConfig = new XmlDocument();

            #region Load log4netConfig
            log4netConfig.LoadXml(@"
            <Soyo.Base.Log>
            <appender name=""AppenderMemory"" type=""Soyo.Base.Text.AppenderMemory"">
                <filter type=""UnitTest.Base.Log.MultiplePropertyFilter"">
                    <condition>
                        <key value=""ABC"" />
                        <stringToMatch value=""123"" />
                    </condition>
                    <condition>
                        <key value=""DEF"" />
                        <stringToMatch value=""456"" />
                    </condition>
                </filter>
            </appender>
            <root>
                <level value=""ALL"" />
                <appender-ref ref=""AppenderMemory"" />
            </root>
            </Soyo.Base.Log>");
            #endregion

            ILoggerController rep = LogManager.CreateController(Guid.NewGuid().ToString());
            XmlConfig.Config(rep, log4netConfig["Soyo.Base.Log"]);

            IAppender[] appenders = LogManager.GetController(rep.Name).AppenderSet;
            Assert.IsTrue(appenders.Length == 1);

            IAppender appender = Array.Find(appenders, delegate(IAppender a) {
                return(a.Name == "AppenderMemory");
            });
            Assert.IsNotNull(appender);

            MultiplePropertyFilter multiplePropertyFilter =
                ((AppenderBase)appender).FilterHead as MultiplePropertyFilter;

            MultiplePropertyFilter.Condition[] conditions = multiplePropertyFilter.GetConditions();
            Assert.AreEqual(2, conditions.Length);
            Assert.AreEqual("ABC", conditions[0].Key);
            Assert.AreEqual("123", conditions[0].StringToMatch);
            Assert.AreEqual("DEF", conditions[1].Key);
            Assert.AreEqual("456", conditions[1].StringToMatch);
        }
Exemplo n.º 21
0
        public void NamedPatternConverterWithPrecision2ShouldStripLessLeadingStuffIfPresent()
        {
            StringAppender stringAppender = new StringAppender();
            LayoutPattern  layout         = NewPatternLayout();

            layout.AddConverter("message-as-name", typeof(MessageAsNamePatternConverter));
            layout.Pattern = "%message-as-name{2}";
            layout.Activate();
            stringAppender.Layout = layout;
            ILoggerController rep = LogManager.CreateController(Guid.NewGuid().ToString());

            BasicConfig.Config(rep, stringAppender);
            ILog log1 = LogManager.Get(rep.Name, "TestAddingCustomPattern");

            log1.Info("NoDots");
            Assert.AreEqual("NoDots", stringAppender.GetString(), "%message-as-name not registered");
            stringAppender.Reset();

            log1.Info("One.Dot");
            Assert.AreEqual("One.Dot", stringAppender.GetString(), "%message-as-name not registered");
            stringAppender.Reset();

            log1.Info("Tw.o.Dots");
            Assert.AreEqual("o.Dots", stringAppender.GetString(), "%message-as-name not registered");
            stringAppender.Reset();

            log1.Info("TrailingDot.");
            Assert.AreEqual("TrailingDot.", stringAppender.GetString(), "%message-as-name not registered");
            stringAppender.Reset();

            log1.Info(".LeadingDot");
            Assert.AreEqual("LeadingDot", stringAppender.GetString(), "%message-as-name not registered");
            stringAppender.Reset();

            // empty string and other evil combinations as tests for of-by-one mistakes in index calculations
            log1.Info(string.Empty);
            Assert.AreEqual(string.Empty, stringAppender.GetString(), "%message-as-name not registered");
            stringAppender.Reset();

            log1.Info("x");
            Assert.AreEqual("x", stringAppender.GetString(), "%message-as-name not registered");
            stringAppender.Reset();

            log1.Info(".");
            Assert.AreEqual(".", stringAppender.GetString(), "%message-as-name not registered");
            stringAppender.Reset();
        }
Exemplo n.º 22
0
        public void SetupRepository()
        {
            controller_ = LogManager.CreateController("");

            countingAppender_ = new CountingAppender();
            countingAppender_.Activate();

            bufferingForwardingAppender_ = new AppenderLoggerBufferForward();
            bufferingForwardingAppender_.AddAppender(countingAppender_);

            bufferingForwardingAppender_.Size = 5;
            bufferingForwardingAppender_.ClearFilter();
            //m_bufferingForwardingAppender.Fix = FixFlags.Partial;
            bufferingForwardingAppender_.Lossy        = false;
            bufferingForwardingAppender_.TriggerLossy = null;
            bufferingForwardingAppender_.Threshold    = Level.All;
        }
Exemplo n.º 23
0
        /// <summary>
        /// Creates a logger hierarchy, configures a SMTP pickup dir appender and returns an ILogger
        /// </summary>
        /// <param name="appender">The appender to use</param>
        /// <returns>A configured ILogger</returns>
        private ILogger CreateLogger(AppenderSmtpPickup appender)
        {
            ILoggerController h = LogManager.CreateController("TestRepository");

            LayoutPattern layout = new LayoutPattern();

            layout.Pattern = "%m%n";
            layout.Activate();

            appender.Layout = layout;
            appender.Activate();

            h.Root.AddAppender(appender);
            h.Initialize();

            ILogger log = h.Get("Logger");

            return(log);
        }
        public void AddingMultipleAppenders()
        {
            CountingAppender alpha = new CountingAppender();
            CountingAppender beta  = new CountingAppender();

            ILoggerController hierarchy =
                Utils.GetController();

            hierarchy.Root.AddAppender(alpha);
            hierarchy.Root.AddAppender(beta);
            hierarchy.Initialize();

            ILog log = LogManager.Get(GetType());

            log.Debug("Hello World");

            Assert.AreEqual(1, alpha.Counter);
            Assert.AreEqual(1, beta.Counter);
        }
Exemplo n.º 25
0
        public void TestExceptionPattern()
        {
            StringAppender stringAppender = new StringAppender();
            LayoutPattern  layout         = NewPatternLayout("%exception{stacktrace}");

            stringAppender.Layout = layout;

            ILoggerController rep = LogManager.CreateController(Guid.NewGuid().ToString());

            BasicConfig.Config(rep, stringAppender);

            ILog log1 = LogManager.Get(rep.Name, "TestExceptionPattern");

            Exception exception = new Exception("Oh no!");

            log1.Info("TestMessage", exception);

            Assert.AreEqual(TextDefault.NullText, stringAppender.GetString());

            stringAppender.Reset();
        }
Exemplo n.º 26
0
        public void TestAddingCustomPattern()
        {
            StringAppender stringAppender = new StringAppender();
            LayoutPattern  layout         = NewPatternLayout();

            layout.AddConverter("TestAddingCustomPattern", typeof(TestMessagePatternConverter));
            layout.Pattern = "%TestAddingCustomPattern";
            layout.Activate();

            stringAppender.Layout = layout;

            ILoggerController rep = LogManager.CreateController(Guid.NewGuid().ToString());

            BasicConfig.Config(rep, stringAppender);

            ILog log1 = LogManager.Get(rep.Name, "TestAddingCustomPattern");

            log1.Info("TestMessage");
            Assert.AreEqual("TestMessage", stringAppender.GetString(), "%TestAddingCustomPattern not registered");
            stringAppender.Reset();
        }
Exemplo n.º 27
0
        public void TestPropertyCharacterEscaping()
        {
            LogObjectData evt = CreateBaseEvent();

            evt.PropertySet["Property1"] = "prop1 \"quoted\"";

            LayoutLoggerXml layout         = new LayoutLoggerXml();
            StringAppender  stringAppender = new StringAppender();

            stringAppender.Layout = layout;

            ILoggerController rep = LogManager.CreateController(Guid.NewGuid().ToString());

            BasicConfig.Config(rep, stringAppender);
            ILog log1 = LogManager.Get(rep.Name, "TestThreadProperiesPattern");

            log1.Logger.Log(new LogObject(evt));

            string expected = CreateEventNode("Property1", "prop1 &quot;quoted&quot;");

            Assert.AreEqual(expected, stringAppender.GetString());
        }
Exemplo n.º 28
0
        public void TestPropertyIllegalCharacterMaskingInName()
        {
            LogObjectData evt = CreateBaseEvent();

            evt.PropertySet["Property\uFFFF"] = "mask this ->\uFFFF";

            LayoutLoggerXml layout         = new LayoutLoggerXml();
            StringAppender  stringAppender = new StringAppender();

            stringAppender.Layout = layout;

            ILoggerController rep = LogManager.CreateController(Guid.NewGuid().ToString());

            BasicConfig.Config(rep, stringAppender);
            ILog log1 = LogManager.Get(rep.Name, "TestThreadProperiesPattern");

            log1.Logger.Log(new LogObject(evt));

            string expected = CreateEventNode("Property?", "mask this -&gt;?");

            Assert.AreEqual(expected, stringAppender.GetString());
        }
Exemplo n.º 29
0
        private void SetupController()
        {
            controller_ = new LoggerController();

            countingAppender_ = new CountingAppender();
            countingAppender_.Activate();

            bufferingForwardingAppender_ = new AppenderLoggerBufferForward();
            bufferingForwardingAppender_.AddAppender(countingAppender_);

            bufferingForwardingAppender_.Size = 0;
            bufferingForwardingAppender_.ClearFilter();
            bufferingForwardingAppender_.Trigger = null;
            //m_bufferingForwardingAppender.Fix = FixFlags.Partial;
            bufferingForwardingAppender_.Lossy        = false;
            bufferingForwardingAppender_.TriggerLossy = null;
            bufferingForwardingAppender_.Threshold    = Level.All;

            bufferingForwardingAppender_.Activate();

            BasicConfig.Config(controller_, bufferingForwardingAppender_);
        }
        // LOG4NET-343
        public void LoggerNameCanConsistOfASingleDot()
        {
            XmlDocument log4netConfig = new XmlDocument();

            log4netConfig.LoadXml(@"
                <Soyo.Base.Log>
                  <appender name=""StringAppender"" type=""UnitTest.Base.Log.StringAppender"">
                    <layout type=""Soyo.Base.Text.LayoutLoggerSimple"" />
                  </appender>
                  <root>
                    <level value=""ALL"" />
                    <appender-ref ref=""StringAppender"" />
                  </root>
                  <logger name=""."">
                    <level value=""WARN"" />
                  </logger>
                </Soyo.Base.Log>");

            ILoggerController rep = LogManager.CreateController(Guid.NewGuid().ToString());

            XmlConfig.Config(rep, log4netConfig["Soyo.Base.Log"]);
        }