Example #1
0
        public void MultipleTraceLogWritersForSameNamePrefixWithDifferentSwitchThresholds()
        {
            var setupTracerFactory = new SetupLog();
            var allListLogWriter   = new ListLogWriter <TraceEntry>(setupTracerFactory);
            var errorListLogWriter = new ListLogWriter <TraceEntry>(setupTracerFactory);

            var traceWriterConfigAll = new TraceWriterConfig(allListLogWriter)
            {
                Switches =
                {
                    { "LogJam.UnitTests", new OnOffTraceSwitch(true) }
                }
            };
            var traceWriterConfigErrors = new TraceWriterConfig(errorListLogWriter)
            {
                Switches =
                {
                    { "LogJam.UnitTests", new ThresholdTraceSwitch(TraceLevel.Error) }
                }
            };

            using (var traceManager = new TraceManager(new TraceManagerConfig(traceWriterConfigAll, traceWriterConfigErrors), setupTracerFactory))
            {
                var tracer    = traceManager.TracerFor(this);
                var fooTracer = traceManager.GetTracer("foo");

                tracer.Info("Info");
                tracer.Verbose("Verbose");
                tracer.Error("Error");
                tracer.Severe("Severe");

                // fooTracer shouldn't log to either of these lists
                fooTracer.Severe("foo Severe");

                Assert.Equal(2, errorListLogWriter.Count);
                Assert.Equal(4, allListLogWriter.Count);
            }
        }
Example #2
0
        public void BatchLogWriterAdapter_WriteBatch_WritesAllEventsFromEnumerable()
        {
            var list       = new List <LogEvent>(10);
            var listWriter = new ListLogWriter(list, 10);
            var writer     = new BatchLogWriterAdapter(listWriter);

            var logEvents = new List <LogEvent>(2);

            logEvents.Add(new LogEvent()
            {
                EventName = "Test"
            });
            logEvents.Add(new LogEvent()
            {
                EventName = "Test 2"
            });

            writer.WriteBatch(logEvents);

            Assert.AreEqual(2, list.Count);
            Assert.AreEqual("Test", list[0].EventName);
            Assert.AreEqual("Test 2", list[1].EventName);
        }
Example #3
0
        public void BatchLogWriterAdapter_WriteBatch_WritesAllEventsFromArray()
        {
            var list       = new List <LogEvent>(10);
            var listWriter = new ListLogWriter(list, 10);
            var writer     = new BatchLogWriterAdapter(listWriter);

            var logEvents = new LogEvent[2];

            logEvents[0] = new LogEvent()
            {
                EventName = "Test"
            };
            logEvents[1] = new LogEvent()
            {
                EventName = "Test 2"
            };

            writer.WriteBatch(logEvents, 2);

            Assert.AreEqual(2, list.Count);
            Assert.AreEqual("Test", list[0].EventName);
            Assert.AreEqual("Test 2", list[1].EventName);
        }
Example #4
0
        public void FallbackWriter_WriteBatch_FallsbackToSecondaryWriter()
        {
            var primaryWriter   = new MockLogWriterWithError();
            var secondaryList   = new List <LogEvent>();
            var secondaryWriter = new ListLogWriter(secondaryList, 10);

            var writer = new FallbackWriter(primaryWriter, secondaryWriter);

            LogEvent[] logEvents = new LogEvent[2];
            logEvents[0] = new LogEvent()
            {
                EventName = "Test log message"
            };
            logEvents[1] = new LogEvent()
            {
                EventName = "Test log message 2"
            };

            writer.WriteBatch(logEvents);

            Assert.AreEqual(2, secondaryList.Count);
            Assert.AreEqual("Test log message", secondaryList[0].EventName);
            Assert.AreEqual("Test log message 2", secondaryList[1].EventName);
        }
        public void LogManagerCanBePassedToTraceManagerCtor()
        {
            var setupLog  = new SetupLog();
            var logConfig = new LogManagerConfig();

            // Just a logwriter that is not used for tracing
            var messageListWriter       = new ListLogWriter <MessageEntry>(setupLog);
            var messageListWriterConfig = logConfig.UseLogWriter(messageListWriter);
            var logManager = new LogManager(logConfig, setupLog);

            // The TraceManagerConfig includes a DebugTraceWriter, which adds to the LogManager.Writers
            using (var traceManager = new TraceManager(logManager, TraceManagerConfig.CreateDebugTraceWriterConfig()))
            {
                traceManager.Start();

                // Starting the TraceManager starts the LogManager
                Assert.True(logManager.IsStarted);

                // There should be two started LogWriters - one is the DebuggerLogWriter for tracing; the other is messageListWriter
                Assert.Equal(2, logManager.Config.Writers.Where(writerConfig => ((IStartable)logManager.GetLogWriter(writerConfig)).IsStarted).Count());

                Assert.True(logManager.IsHealthy); // Ensure no warnings or errors
            }
        }
Example #6
0
		public void AggregateLogWriter_WriteEvent_WritesToChildOnBatchSizeReached()
		{
			var events = new List<LogEvent>(10);
			var child = new ListLogWriter(events, 10);
			var logWriter = new AsyncQueueLogWriter(child, 10, TimeSpan.Zero, null);

			for (int cnt = 0; cnt < 5; cnt++)
			{
				var logEvent = new LogEvent();
				logEvent.EventName = "Test " + Guid.NewGuid().ToString();
				logWriter.Write(logEvent);
			}
			System.Threading.Thread.Sleep(250);
			Assert.AreEqual(0, events.Count);

			for (int cnt = 0; cnt < 5; cnt++)
			{
				var logEvent = new LogEvent();
				logEvent.EventName = "Test " + Guid.NewGuid().ToString();
				logWriter.Write(logEvent);
			}
			System.Threading.Thread.Sleep(250);
			Assert.AreEqual(10, events.Count);
		}
Example #7
0
 public void ListLogWriter_Constructor_ThrowsOnInvalidCapacity()
 {
     var logWriter = new ListLogWriter(new List <LogEvent>(), 0);
 }
Example #8
0
 public void ListLogWriter_Constructor_ThrowsOnNullList()
 {
     var logWriter = new ListLogWriter(null, 10);
 }
Example #9
0
 public void BatchLogWriterAdapter_Constructor_ConstructsOk()
 {
     var list       = new List <LogEvent>(10);
     var listWriter = new ListLogWriter(list, 10);
     var writer     = new BatchLogWriterAdapter(listWriter);
 }