public void WriteOneMessage() { var logger = new BlackBoxManager(); var queueWriter = new EventQueueWriter(); logger.RegisterWriter(EventLevel.Critical, queueWriter.Write); logger.Write(new EventMessage(EventLevel.Critical, "Hello Critical World!")); Assert.Single(queueWriter.Messages); }
public void LogWriter() { var writer = new EventQueueWriter(); Log.GetManager() .RegisterWriter(EventLevel.Debug, writer.Write); Log.Critical("Hello Critical World!"); Assert.Single(writer.Messages); }
public void ErrornousWriter() { var logger = new BlackBoxManager(); var queueWriter = new EventQueueWriter(); var throwWriter = new EventThrowWriter(); logger.RegisterFallbackWriter(queueWriter.Write); logger.RegisterWriter(EventLevel.Critical, throwWriter.Write); logger.Write(new EventMessage(EventLevel.Critical, "Hello Critical World!")); Assert.Single(throwWriter.Messages); Assert.True(queueWriter.Messages.Count == 2); }
public void SkipDifferentLevelMessage() { var logger = new BlackBoxManager(); var queueWriter = new EventQueueWriter(); logger.RegisterWriter(EventLevel.Critical, queueWriter.Write); logger.Write(new EventMessage(EventLevel.Debug, "Hello Debug World!")); logger.Write(new EventMessage(EventLevel.Trace, "Hello Trace World!")); logger.Write(new EventMessage(EventLevel.Info, "Hello Info World!")); logger.Write(new EventMessage(EventLevel.Warning, "Hello Warning World!")); logger.Write(new EventMessage(EventLevel.Error, "Hello Error World!")); Assert.Empty(queueWriter.Messages); }
public void WriteAllLevelMessage() { var logger = new BlackBoxManager(); var queueWriter = new EventQueueWriter(); logger.RegisterWriter(EventLevel.Debug, queueWriter.Write); //logger.Write(new EventMessage(EventLevel.Debug, "Hello Debug World!")); // Only when debugger is attached! logger.Write(new EventMessage(EventLevel.Trace, "Hello Trace World!")); logger.Write(new EventMessage(EventLevel.Info, "Hello Info World!")); logger.Write(new EventMessage(EventLevel.Warning, "Hello Warning World!")); logger.Write(new EventMessage(EventLevel.Error, "Hello Error World!")); logger.Write(new EventMessage(EventLevel.Critical, "Hello Critical World!")); Assert.True(queueWriter.Messages.Count == 5); }
public void WriteOnlyCriticalMessage() { var logger = new BlackBoxManager(); var queueWriter = new EventQueueWriter(); logger.RegisterWriter(EventLevel.Critical, queueWriter.Write); logger.RegisterWriter(EventLevel.Error, t => { Console.WriteLine(t.Content); }); logger.Write(new EventMessage(EventLevel.Debug, "Hello Debug World!")); logger.Write(new EventMessage(EventLevel.Trace, "Hello Trace World!")); logger.Write(new EventMessage(EventLevel.Info, "Hello Info World!")); logger.Write(new EventMessage(EventLevel.Warning, "Hello Warning World!")); logger.Write(new EventMessage(EventLevel.Error, "Hello Error World!")); logger.Write(new EventMessage(EventLevel.Critical, "Hello Critical World!")); Assert.Single(queueWriter.Messages); }
public void WriteFromMultipleThreads() { const int threadCount = 10000; var logger = new BlackBoxManagerThreaded(); var queueWriter = new EventQueueWriter(); logger.RegisterWriter(EventLevel.Critical, queueWriter.Write); Task[] tasks = new Task[threadCount]; for (int i = 0; i < tasks.Length; i++) { tasks[i] = Task.Factory.StartNew((n) => { logger.Write(new EventMessage(EventLevel.Critical, "Hello Critical World #" + n + " from thread id " + Thread.CurrentThread.ManagedThreadId + "!")); }, i); } Task.WaitAll(tasks); Assert.True(queueWriter.Messages.Count == threadCount); }