using Microsoft.Practices.EnterpriseLibrary.Common.Configuration; using Microsoft.Practices.EnterpriseLibrary.Logging; using Microsoft.Practices.EnterpriseLibrary.Logging.Configuration; using Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners; using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Diagnostics; using System.Text; namespace LoggingLibraryTest { [ConfigurationElementType(typeof(CustomTraceListenerData))] public class StubTraceListener : CustomTraceListener { private readonly static List logEntries_ = new List(); private readonly static List logMessages_ = new List(); public override void Write(string message) { StubTraceListener.logMessages_.Add(message); } public override void WriteLine(string message) { StubTraceListener.logMessages_.Add(message); } public override void TraceData(TraceEventCache eventCache, string source, TraceEventType eventType, int id, object data) { LogEntry le = data as LogEntry; if (le != null) { StubTraceListener.logEntries_.Add(le); if (this.Formatter != null) { this.Write(this.Formatter.Format(le)); return; } } base.TraceData(eventCache, source, eventType, id, data); } internal static IList GetLogMessages() { return new ReadOnlyCollection (StubTraceListener.logMessages_); } internal static IList GetLogEntries() { return new ReadOnlyCollection (StubTraceListener.logEntries_); } internal static void Reset() { StubTraceListener.logEntries_.Clear(); StubTraceListener.logMessages_.Clear(); } } }