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); } }
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); }
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); }
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 } }
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); }
public void ListLogWriter_Constructor_ThrowsOnInvalidCapacity() { var logWriter = new ListLogWriter(new List <LogEvent>(), 0); }
public void ListLogWriter_Constructor_ThrowsOnNullList() { var logWriter = new ListLogWriter(null, 10); }
public void BatchLogWriterAdapter_Constructor_ConstructsOk() { var list = new List <LogEvent>(10); var listWriter = new ListLogWriter(list, 10); var writer = new BatchLogWriterAdapter(listWriter); }