Example #1
0
        public static void Configure(dynamic appenderForNServiceBusToLogTo, string thresholdForNServiceBusToLogWith = null)
        {
            if (appenderForNServiceBusToLogTo == null)
            {
                throw new ArgumentNullException("appenderForNServiceBusToLogTo");
            }
            EnsureLog4NetExists();

            if (!AppenderSkeletonType.IsInstanceOfType(appenderForNServiceBusToLogTo))
            {
                throw new ArgumentException("The object provided must inherit from log4net.Appender.AppenderSkeleton.");
            }

            Configure();

            if (appenderForNServiceBusToLogTo.Layout == null)
            {
                appenderForNServiceBusToLogTo.Layout = (dynamic)Activator.CreateInstance(PatternLayoutType, "%d [%t] %-5p %c [%x] <%X{auth}> - %m%n");
            }

            if (thresholdForNServiceBusToLogWith != null)
            {
                appenderForNServiceBusToLogTo.Threshold = Log4NetAppenderFactory.ConvertToLogLevel(thresholdForNServiceBusToLogWith);
            }

            if (appenderForNServiceBusToLogTo.Threshold == null)
            {
                appenderForNServiceBusToLogTo.Threshold = Log4NetAppenderFactory.ConvertToLogLevel("Info");
            }

            appenderForNServiceBusToLogTo.ActivateOptions();

            BasicConfiguratorType.InvokeStaticMethod("Configure", (object)appenderForNServiceBusToLogTo);
        }
        public static void Configure(dynamic appenderForNServiceBusToLogTo, string thresholdForNServiceBusToLogWith = null)
        {
            if (appenderForNServiceBusToLogTo == null)
            {
                throw new ArgumentNullException("appenderForNServiceBusToLogTo");
            }
            EnsureLog4NetExists();

            if (!AppenderSkeletonType.IsInstanceOfType(appenderForNServiceBusToLogTo))
                throw new ArgumentException("The object provided must inherit from log4net.Appender.AppenderSkeleton.");

            Configure();

            if (appenderForNServiceBusToLogTo.Layout == null)
            {
                // ReSharper disable once RedundantCast
                appenderForNServiceBusToLogTo.Layout = (dynamic)Activator.CreateInstance(PatternLayoutType, "%d [%t] %-5p %c [%x] <%X{auth}> - %m%n");
            }

            if (thresholdForNServiceBusToLogWith != null)
                appenderForNServiceBusToLogTo.Threshold = Log4NetAppenderFactory.ConvertToLogLevel(thresholdForNServiceBusToLogWith);

            if (appenderForNServiceBusToLogTo.Threshold == null)
                appenderForNServiceBusToLogTo.Threshold = Log4NetAppenderFactory.ConvertToLogLevel("Info");

            appenderForNServiceBusToLogTo.ActivateOptions();

            BasicConfiguratorType.InvokeStaticMethod("Configure", (object)appenderForNServiceBusToLogTo);
        }
        void TestLayout(string layout, Action <Logger, ExpectedLog> loggingCallback)
        {
            var     logManagerType = log4NetAsm.GetType("log4net.LogManager");
            dynamic hierarchy      = logManagerType.InvokeMember("GetRepository",
                                                                 BindingFlags.Static | BindingFlags.InvokeMethod | BindingFlags.Public, null, null, null);

            dynamic patternLayout = log4NetAsm.CreateInstance("log4net.Layout.PatternLayout");

            patternLayout.ConversionPattern = "%date [%thread] %-5level %logger - %message%newline";
            patternLayout.ActivateOptions();

            TextWriter logWriter = new StringWriter();

            dynamic memory = log4NetAsm.CreateInstance("log4net.Appender.TextWriterAppender");

            memory.Layout = patternLayout;
            memory.Writer = logWriter;
            memory.ActivateOptions();
            hierarchy.Root.AddAppender(memory);

            //hierarchy.Root.Level = Level.Info;
            hierarchy.Configured = true;

            var logger = logManagerType.InvokeMember("GetLogger",
                                                     BindingFlags.Static | BindingFlags.InvokeMethod | BindingFlags.Public, null, null, new [] { GetType() });

            var expectedLog = new ExpectedLog();

            loggingCallback(new Logger()
            {
                impl = logger
            }, expectedLog);

            var logContent = logWriter.ToString();

            var formatDocument = CreateTestFormatSkeleton();

            Log4NetPatternImporter.GenerateRegularGrammarElement(formatDocument.DocumentElement, layout);

            ParseAndVerifyLog(expectedLog, logContent, formatDocument);
        }