public void RedirectsToCommonLogging()
        {
            CapturingLoggerFactoryAdapter testLoggerFactoryAdapter = new CapturingLoggerFactoryAdapter();
            LogManager.Adapter = testLoggerFactoryAdapter;

            // force entlib logging init
            Logger.Write("init");

            // ensure external configuration didn't change
            Assert.AreEqual("Test Capturing Listener", TestCommonLoggingEntlibTraceListener.Instance.Name);
            LogEntry logEntry = new LogEntry();
            logEntry.Categories.Add("mycategory");
            logEntry.Message = "testmessage";
            ILogFormatter formatter = TestCommonLoggingEntlibTraceListener.Instance.Formatter;
            string s = formatter.Format(logEntry);
            Assert.AreEqual("Category: mycategory, Message: testmessage", s);

            using (TestCommonLoggingEntlibTraceListener.Instance.Capture())
            {
                // note that output depends on the formatter configured for the entlib listener!
                Logger.Write("message1");
                Assert.AreEqual("Category: General, Message: message1", testLoggerFactoryAdapter.LastEvent.RenderedMessage);
                Assert.AreEqual(LogLevel.Info, testLoggerFactoryAdapter.LastEvent.Level);

                Logger.Write("message2", "custom category", -1, -1, TraceEventType.Warning);
                Assert.AreEqual("Category: custom category, Message: message2", testLoggerFactoryAdapter.LastEvent.RenderedMessage);
                Assert.AreEqual("Test Capturing Listener/All Events", testLoggerFactoryAdapter.LastEvent.Source.Name);
                Assert.AreEqual(LogLevel.Warn, testLoggerFactoryAdapter.LastEvent.Level);
            }
        }
        public void RedirectsToCommonLogging()
        {
            CapturingLoggerFactoryAdapter testLoggerFactoryAdapter = new CapturingLoggerFactoryAdapter();
            LogManager.Adapter = testLoggerFactoryAdapter;

            // force entlib logging init
            Logger.SetLogWriter(new LogWriterFactory().Create());
            Logger.Write("init");

            // ensure external configuration didn't change
            LogEntry logEntry = new LogEntry();
            logEntry.Categories.Add("mycategory");
            logEntry.Message = "testmessage";

            // Change to EL 6 (no longer uses Unity) so need to get listener via LogWriter
            var allEventsSource = Logger.Writer.GetMatchingTraceSources(logEntry).First(source => "All Events".Equals(source.Name));
            var listener = (CommonLoggingEntlibTraceListener) allEventsSource.Listeners.First(l => l is CommonLoggingEntlibTraceListener);
            Assert.IsTrue(listener.Name.StartsWith("Test Capturing Listener"));

            ILogFormatter formatter = listener.Formatter;
            string s = formatter.Format(logEntry);
            Assert.AreEqual("Category: mycategory, Message: testmessage", s);

            // note that output depends on the formatter configured for the entlib listener!
            Logger.Write("message1");
            Assert.AreEqual("Category: General, Message: message1", testLoggerFactoryAdapter.LastEvent.RenderedMessage);
            Assert.AreEqual(LogLevel.Info, testLoggerFactoryAdapter.LastEvent.Level);

            Logger.Write("message2", "custom category", -1, -1, TraceEventType.Warning);
            Assert.AreEqual("Category: custom category, Message: message2", testLoggerFactoryAdapter.LastEvent.RenderedMessage);
            Assert.AreEqual("Test Capturing Listener/All Events", testLoggerFactoryAdapter.LastEvent.Source.Name);
            Assert.AreEqual(LogLevel.Warn, testLoggerFactoryAdapter.LastEvent.Level);
        }
コード例 #3
0
        public void RoutesToCommonLogging()
        {
            //            CommonLoggingAppender appender = new CommonLoggingAppender();
            //            appender.Layout = new PatternLayout("%level - %class.%method: %message");
            //            BasicConfigurator.Configure(stm);

            Stream stm = this.GetType().Assembly.GetManifestResourceStream(this.GetType().FullName + "_log4net.config.xml");
            XmlConfigurator.Configure(stm);

            CapturingLoggerFactoryAdapter adapter = new CapturingLoggerFactoryAdapter();
            LogManager.Adapter = adapter;
            
            string message = "testmessage";
            Exception exception = new Exception("testexception");

            adapter.ClearLastEvent();
            log4net.LogManager.GetLogger(this.GetType()).Debug(message, exception);
            Assert.AreEqual(this.GetType().FullName, adapter.LastEvent.Source.Name);
            Assert.AreEqual(string.Format("{0} - {1}.{2}: {3}", Level.Debug, this.GetType().FullName, MethodBase.GetCurrentMethod().Name ,  message), adapter.LastEvent.MessageObject.ToString());
            Assert.AreSame(exception, adapter.LastEvent.Exception);

            adapter.ClearLastEvent();
            log4net.LogManager.GetLogger(this.GetType()).Warn(message, exception);
            Assert.AreEqual(this.GetType().FullName, adapter.LastEvent.Source.Name);
            Assert.AreEqual(string.Format("{0} - {1}.{2}: {3}", Level.Warn, this.GetType().FullName, MethodBase.GetCurrentMethod().Name ,  message), adapter.LastEvent.MessageObject.ToString());
            Assert.AreSame(exception, adapter.LastEvent.Exception);
        }
コード例 #4
0
        public void AcceptsNullCategory()
        {
            CapturingLoggerFactoryAdapter factoryAdapter = new CapturingLoggerFactoryAdapter();

            LogManager.Adapter = factoryAdapter;

            CommonLoggingTraceListener l = new CommonLoggingTraceListener();

            l.DefaultTraceEventType = (TraceEventType)0xFFFF;

            AssertExpectedLogLevel(l, TraceEventType.Start, LogLevel.Trace);
            AssertExpectedLogLevel(l, TraceEventType.Stop, LogLevel.Trace);
            AssertExpectedLogLevel(l, TraceEventType.Suspend, LogLevel.Trace);
            AssertExpectedLogLevel(l, TraceEventType.Resume, LogLevel.Trace);
            AssertExpectedLogLevel(l, TraceEventType.Transfer, LogLevel.Trace);
            AssertExpectedLogLevel(l, TraceEventType.Verbose, LogLevel.Debug);
            AssertExpectedLogLevel(l, TraceEventType.Information, LogLevel.Info);
            AssertExpectedLogLevel(l, TraceEventType.Warning, LogLevel.Warn);
            AssertExpectedLogLevel(l, TraceEventType.Error, LogLevel.Error);
            AssertExpectedLogLevel(l, TraceEventType.Critical, LogLevel.Fatal);

            factoryAdapter.ClearLastEvent();
            l.DefaultTraceEventType = TraceEventType.Warning;
            l.Write("some message", null);
            Assert.AreEqual(string.Format("{0}.{1}", l.Name, ""), factoryAdapter.LastEvent.Source.Name);
            Assert.AreEqual(LogLevel.Warn, factoryAdapter.LastEvent.Level);
            Assert.AreEqual("some message", factoryAdapter.LastEvent.RenderedMessage);
            Assert.AreEqual(null, factoryAdapter.LastEvent.Exception);
        }
コード例 #5
0
        public void AcceptsNullCategory()
        {
            CapturingLoggerFactoryAdapter factoryAdapter = new CapturingLoggerFactoryAdapter();
            LogManager.Adapter = factoryAdapter;

            CommonLoggingTraceListener l = new CommonLoggingTraceListener();
            l.DefaultTraceEventType = (TraceEventType)0xFFFF;

            AssertExpectedLogLevel(l, TraceEventType.Start, LogLevel.Trace);
            AssertExpectedLogLevel(l, TraceEventType.Stop, LogLevel.Trace);
            AssertExpectedLogLevel(l, TraceEventType.Suspend, LogLevel.Trace);
            AssertExpectedLogLevel(l, TraceEventType.Resume, LogLevel.Trace);
            AssertExpectedLogLevel(l, TraceEventType.Transfer, LogLevel.Trace);
            AssertExpectedLogLevel(l, TraceEventType.Verbose, LogLevel.Debug);
            AssertExpectedLogLevel(l, TraceEventType.Information, LogLevel.Info);
            AssertExpectedLogLevel(l, TraceEventType.Warning, LogLevel.Warn);
            AssertExpectedLogLevel(l, TraceEventType.Error, LogLevel.Error);
            AssertExpectedLogLevel(l, TraceEventType.Critical, LogLevel.Fatal);

            factoryAdapter.ClearLastEvent();
            l.DefaultTraceEventType = TraceEventType.Warning;
            l.Write("some message", null);
            Assert.AreEqual(string.Format("{0}.{1}", l.Name, ""), factoryAdapter.LastEvent.Source.Name);
            Assert.AreEqual(LogLevel.Warn, factoryAdapter.LastEvent.Level);
            Assert.AreEqual("some message", factoryAdapter.LastEvent.RenderedMessage);
            Assert.AreEqual(null, factoryAdapter.LastEvent.Exception);
        }
コード例 #6
0
        public void RedirectsToCommonLogging()
        {
            CapturingLoggerFactoryAdapter testLoggerFactoryAdapter = new CapturingLoggerFactoryAdapter();
            LogManager.Adapter = testLoggerFactoryAdapter;

            // force entlib logging init
            Logger.Write("init");

            var listener =(CommonLoggingEntlibTraceListener) ((TraceListenerWrapper)EnterpriseLibraryContainer.Current.GetInstance<TraceListener>("Test Capturing Listener")).InnerTraceListener;

            // ensure external configuration didn't change
            // change to starts with because entlib now wraps all listeners and changes the name
            Assert.IsTrue(listener.Name.StartsWith("Test Capturing Listener"));
            LogEntry logEntry = new LogEntry();
            logEntry.Categories.Add("mycategory");
            logEntry.Message = "testmessage";
            ILogFormatter formatter = listener.Formatter;
            string s = formatter.Format(logEntry);

            Assert.AreEqual("Category: mycategory, Message: testmessage", s);
                // note that output depends on the formatter configured for the entlib listener!
                Logger.Write("message1");
                Assert.AreEqual("Category: General, Message: message1", testLoggerFactoryAdapter.LastEvent.RenderedMessage);
                Assert.AreEqual(LogLevel.Info, testLoggerFactoryAdapter.LastEvent.Level);

                Logger.Write("message2", "custom category", -1, -1, TraceEventType.Warning);
                Assert.AreEqual("Category: custom category, Message: message2", testLoggerFactoryAdapter.LastEvent.RenderedMessage);
                Assert.AreEqual("Test Capturing Listener/All Events", testLoggerFactoryAdapter.LastEvent.Source.Name);
                Assert.AreEqual(LogLevel.Warn, testLoggerFactoryAdapter.LastEvent.Level);
        }
コード例 #7
0
 public void LoggerCanChangeLogLevel()
 {
     CapturingLoggerFactoryAdapter adapter = new CapturingLoggerFactoryAdapter();
     CapturingLogger testLogger = (CapturingLogger) adapter.GetLogger("test");
     Assert.AreEqual(LogLevel.All, testLogger.CurrentLogLevel);
     testLogger.Trace("message1");
     Assert.AreEqual(1, testLogger.LoggerEvents.Count);
     testLogger.CurrentLogLevel = LogLevel.Debug;
     testLogger.Trace("message2"); // not logged!
     Assert.AreEqual("message1", testLogger.LastEvent.MessageObject);
 }
コード例 #8
0
        private void AssertExpectedLogLevel(CommonLoggingTraceListener l, TraceEventType eventType, LogLevel expectedLogLevel)
        {
            CapturingLoggerFactoryAdapter factoryAdapter = (CapturingLoggerFactoryAdapter)LogManager.Adapter;

            factoryAdapter.Clear();
            l.TraceEvent(null, "sourceName " + eventType, eventType, -1, "format {0}", eventType);
            Assert.AreEqual(string.Format("{0}.{1}", l.Name, "sourceName " + eventType), factoryAdapter.LastEvent.Source.Name);
            Assert.AreEqual(expectedLogLevel, factoryAdapter.LastEvent.Level);
            Assert.AreEqual("format " + eventType, factoryAdapter.LastEvent.RenderedMessage);
            Assert.AreEqual(null, factoryAdapter.LastEvent.Exception);
        }
コード例 #9
0
        public void LoggerCanChangeLogLevel()
        {
            CapturingLoggerFactoryAdapter adapter = new CapturingLoggerFactoryAdapter();
            CapturingLogger testLogger            = (CapturingLogger)adapter.GetLogger("test");

            Assert.AreEqual(LogLevel.All, testLogger.CurrentLogLevel);
            testLogger.Trace("message1");
            Assert.AreEqual(1, testLogger.LoggerEvents.Count);
            testLogger.CurrentLogLevel = LogLevel.Debug;
            testLogger.Trace("message2"); // not logged!
            Assert.AreEqual("message1", testLogger.LastEvent.MessageObject);
        }
コード例 #10
0
        public void DoesNotLogBelowFilterLevel()
        {
            CapturingLoggerFactoryAdapter factoryAdapter = new CapturingLoggerFactoryAdapter();
            LogManager.Adapter = factoryAdapter;

            CommonLoggingTraceListener l = new CommonLoggingTraceListener();
            l.Filter = new EventTypeFilter(SourceLevels.Warning);
            factoryAdapter.ClearLastEvent();
            l.TraceEvent(null, "sourceName", TraceEventType.Information, -1, "format {0}", "Information");
            Assert.AreEqual(null, factoryAdapter.LastEvent);

            AssertExpectedLogLevel(l, TraceEventType.Warning, LogLevel.Warn);
            AssertExpectedLogLevel(l, TraceEventType.Error, LogLevel.Error);
        }
コード例 #11
0
        public void AdapterClearsEvents()
        {
            CapturingLoggerFactoryAdapter adapter = new CapturingLoggerFactoryAdapter();
            CapturingLogger testLogger = (CapturingLogger) adapter.GetLogger("test");
            testLogger.Trace("message1");
            testLogger.Trace("message2");
            Assert.IsNotNull(adapter.LastEvent);
            Assert.AreEqual(2, adapter.LoggerEvents.Count);

            adapter.ClearLastEvent();
            Assert.IsNull(adapter.LastEvent);
            adapter.Clear();
            Assert.IsNull(adapter.LastEvent);
            Assert.AreEqual(0, adapter.LoggerEvents.Count);
        }
コード例 #12
0
        public void DoesNotLogBelowFilterLevel()
        {
            CapturingLoggerFactoryAdapter factoryAdapter = new CapturingLoggerFactoryAdapter();

            LogManager.Adapter = factoryAdapter;

            CommonLoggingTraceListener l = new CommonLoggingTraceListener();

            l.Filter = new EventTypeFilter(SourceLevels.Warning);
            factoryAdapter.ClearLastEvent();
            l.TraceEvent(null, "sourceName", TraceEventType.Information, -1, "format {0}", "Information");
            Assert.AreEqual(null, factoryAdapter.LastEvent);

            AssertExpectedLogLevel(l, TraceEventType.Warning, LogLevel.Warn);
            AssertExpectedLogLevel(l, TraceEventType.Error, LogLevel.Error);
        }
コード例 #13
0
        public void AdapterClearsEvents()
        {
            CapturingLoggerFactoryAdapter adapter = new CapturingLoggerFactoryAdapter();
            CapturingLogger testLogger            = (CapturingLogger)adapter.GetLogger("test");

            testLogger.Trace("message1");
            testLogger.Trace("message2");
            Assert.IsNotNull(adapter.LastEvent);
            Assert.AreEqual(2, adapter.LoggerEvents.Count);

            adapter.ClearLastEvent();
            Assert.IsNull(adapter.LastEvent);
            adapter.Clear();
            Assert.IsNull(adapter.LastEvent);
            Assert.AreEqual(0, adapter.LoggerEvents.Count);
        }
コード例 #14
0
        public void LoggerCapturesIndividualEvents()
        {
            CapturingLoggerFactoryAdapter adapter = new CapturingLoggerFactoryAdapter();
            CapturingLogger testLogger = (CapturingLogger) adapter.GetLogger("test");
            testLogger.Trace("message1");
            testLogger.Trace("message2");

            Assert.AreEqual(2, testLogger.LoggerEvents.Count);
            Assert.AreEqual("message2", testLogger.LastEvent.MessageObject);
            Assert.AreEqual("message1", testLogger.LoggerEvents[0].MessageObject);
            Assert.AreEqual("message2", testLogger.LoggerEvents[1].MessageObject);

            testLogger.ClearLastEvent();
            Assert.IsNull(testLogger.LastEvent);
            testLogger.Clear();
            Assert.IsNull(testLogger.LastEvent);
            Assert.AreEqual(0, testLogger.LoggerEvents.Count);
        }
コード例 #15
0
        public void AdapterCapturesAllEvents()
        {
            CapturingLoggerFactoryAdapter adapter = new CapturingLoggerFactoryAdapter();
            CapturingLogger testLogger = (CapturingLogger) adapter.GetLogger("test");
            CapturingLogger test2Logger = (CapturingLogger) adapter.GetLogger("test2");
            testLogger.Trace("message1");
            test2Logger.Trace("message2");

            Assert.AreEqual(1, testLogger.LoggerEvents.Count);
            Assert.AreEqual("message1", testLogger.LastEvent.MessageObject);
            Assert.AreEqual(1, test2Logger.LoggerEvents.Count);
            Assert.AreEqual("message2", test2Logger.LastEvent.MessageObject);

            Assert.AreEqual(2, adapter.LoggerEvents.Count);
            Assert.AreEqual("message1", adapter.LoggerEvents[0].MessageObject);
            Assert.AreEqual(1, test2Logger.LoggerEvents.Count);
            Assert.AreEqual("message2", adapter.LoggerEvents[1].MessageObject);
        }
コード例 #16
0
        public void AdapterCapturesAllEvents()
        {
            CapturingLoggerFactoryAdapter adapter = new CapturingLoggerFactoryAdapter();
            CapturingLogger testLogger            = (CapturingLogger)adapter.GetLogger("test");
            CapturingLogger test2Logger           = (CapturingLogger)adapter.GetLogger("test2");

            testLogger.Trace("message1");
            test2Logger.Trace("message2");

            Assert.AreEqual(1, testLogger.LoggerEvents.Count);
            Assert.AreEqual("message1", testLogger.LastEvent.MessageObject);
            Assert.AreEqual(1, test2Logger.LoggerEvents.Count);
            Assert.AreEqual("message2", test2Logger.LastEvent.MessageObject);

            Assert.AreEqual(2, adapter.LoggerEvents.Count);
            Assert.AreEqual("message1", adapter.LoggerEvents[0].MessageObject);
            Assert.AreEqual(1, test2Logger.LoggerEvents.Count);
            Assert.AreEqual("message2", adapter.LoggerEvents[1].MessageObject);
        }
コード例 #17
0
        public void LoggerCapturesIndividualEvents()
        {
            CapturingLoggerFactoryAdapter adapter = new CapturingLoggerFactoryAdapter();
            CapturingLogger testLogger            = (CapturingLogger)adapter.GetLogger("test");

            testLogger.Trace("message1");
            testLogger.Trace("message2");

            Assert.AreEqual(2, testLogger.LoggerEvents.Count);
            Assert.AreEqual("message2", testLogger.LastEvent.MessageObject);
            Assert.AreEqual("message1", testLogger.LoggerEvents[0].MessageObject);
            Assert.AreEqual("message2", testLogger.LoggerEvents[1].MessageObject);

            testLogger.ClearLastEvent();
            Assert.IsNull(testLogger.LastEvent);
            testLogger.Clear();
            Assert.IsNull(testLogger.LastEvent);
            Assert.AreEqual(0, testLogger.LoggerEvents.Count);
        }
コード例 #18
0
        public void RoutesToCommonLogging()
        {

            // configure for capturing
            CapturingLoggerFactoryAdapter adapter = new CapturingLoggerFactoryAdapter();
            LogManager.Adapter = adapter;
            var configuration = new LoggerConfiguration().ReadFrom.AppSettings().Enrich.WithProperty("Common.Logging.Type", typeof(CommonLoggingSerilogTests).FullName);
            var logger = configuration.CreateLogger();

            var exception = new Exception();

            adapter.ClearLastEvent();

            var position = new { Latitude = 25, Longitude = 134 };
            var elapsedMs = 34;
            logger.Error(exception, "Processed {@Position} in {Elapsed:000} ms.", position, elapsedMs);

            Assert.AreEqual(typeof(CommonLoggingSerilogTests).FullName, adapter.LastEvent.Source.Name);
            Assert.AreEqual("Processed { Latitude: 25, Longitude: 134 } in 034 ms.", adapter.LastEvent.RenderedMessage);
            Assert.AreSame(exception, adapter.LastEvent.Exception);
        }
コード例 #19
0
        public void RoutesToCommonLogging()
        {
            LoggingConfiguration cfg = new LoggingConfiguration();
            CommonLoggingTarget target = new CommonLoggingTarget("${level:uppercase=true}|${logger}|${message}");
            cfg.LoggingRules.Add(new LoggingRule("*", LogLevel.Trace, target));

            NLogLogManager.Configuration = cfg;

            // configure for capturing
            CapturingLoggerFactoryAdapter adapter = new CapturingLoggerFactoryAdapter();
            LogManager.Adapter = adapter;

            string msg = "testmessage";

            Exception ex = new Exception("testexception");

            adapter.ClearLastEvent();
            NLogLogManager.GetLogger("myLogger").DebugException(msg, ex);
            Assert.AreEqual("myLogger", adapter.LastEvent.Source.Name);
            Assert.AreEqual(string.Format("DEBUG|myLogger|{0}", msg), adapter.LastEvent.RenderedMessage);
            Assert.AreSame(ex, adapter.LastEvent.Exception);
        }
コード例 #20
0
ファイル: CapturingLogger.cs プロジェクト: briandealwis/gt
 /// <summary>
 /// Create a new logger instance.
 /// </summary>
 public CapturingLogger(CapturingLoggerFactoryAdapter owner, string logName)
     : base(logName, LogLevel.All, true, true, true, null)
 {
     ArgUtils.AssertNotNull("owner", owner);
     Owner = owner;
 }
コード例 #21
0
 public RecieverFailure()
 {
     adapter = new CapturingLoggerFactoryAdapter();
     LogManager.Adapter = adapter;
 }
コード例 #22
0
 /// <summary>
 /// Create a new logger instance.
 /// </summary>
 public CapturingLogger(CapturingLoggerFactoryAdapter owner, string logName)
     : base(logName, LogLevel.All, true, true, true, null)
 {
     ArgUtils.AssertNotNull("owner", owner);
     Owner = owner;
 }