internal static string ExpectedTraceDataOutput(string delimiter, TraceFilter filter, TraceEventCache cache, string source, TraceEventType eventType, int id, object[] data) { if (filter != null && !filter.ShouldTrace(cache, source, eventType, id, null, null, data, null)) { return(string.Empty); } string secondDelimiter = delimiter == "," ? DefaultDelimiter : ","; var builder = new StringBuilder(); builder.AppendHeader(source, eventType, id, delimiter); builder.Append(delimiter); if (data != null) { for (int i = 0; i < data.Length; ++i) { if (i != 0) { builder.Append(secondDelimiter); } builder.Append(EscapedString(data[i].ToString())); } } builder.Append(delimiter); builder.AppendTraceEventCache(cache, delimiter); return(builder.AppendLine().ToString()); }
public override bool ShouldTrace(TraceEventCache cache, string source, TraceEventType eventType, int id, string formatOrMessage, object[] args, object data1, object[] data) { SourceLevels originalTraceSourceLevel = SourceLevels.Off; SourceLevels modifiedTraceSourceLevel = SourceLevels.Off; if (source == "System.Net") { originalTraceSourceLevel = _originalWebTraceSourceLevel; modifiedTraceSourceLevel = _modifiedWebTraceTraceSourceLevel; } else if (source == "System.Net.HttpListener") { originalTraceSourceLevel = _originalHttpListenerTraceSourceLevel; modifiedTraceSourceLevel = _modifiedHttpListenerTraceSourceLevel; } else if (source == "System.Net.Sockets") { originalTraceSourceLevel = _originalSocketsTraceSourceLevel; modifiedTraceSourceLevel = _modifiedSocketsTraceSourceLevel; } else if (source == "System.Net.Cache") { originalTraceSourceLevel = _originalCacheTraceSourceLevel; modifiedTraceSourceLevel = _modifiedCacheTraceSourceLevel; } var level = ConvertToSourceLevel(eventType); if (!_ignoreOriginalSourceLevel && (originalTraceSourceLevel & level) == level) { if (_filter == null) { return(true); } else { return(_filter.ShouldTrace(cache, source, eventType, id, formatOrMessage, args, data1, data)); } } else if (_ignoreOriginalSourceLevel && (modifiedTraceSourceLevel & level) == level) { if (_filter == null) { return(true); } else { return(_filter.ShouldTrace(cache, source, eventType, id, formatOrMessage, args, data1, data)); } } return(false); }
public void Test_TraceEvent_WithFormatAndFilterReturnsTrue() { Expect .Call(_mockFilter.ShouldTrace(_traceEventCache, "Test", TraceEventType.Information, 1, "{0} {1}", new object[] { "The", "message." }, null, null)) .Return(true); _mocks.ReplayAll(); _filterListener.TraceEvent(_traceEventCache, "Test", TraceEventType.Information, 1, "{0} {1}", "The", "message."); _mocks.VerifyAll(); LoggingEvent[] events = _memoryAppender.GetEvents(); Assert.That(events.Length, Is.EqualTo(1)); Assert.That(events[0].Level, Is.EqualTo(Level.Info)); Assert.That(events[0].MessageObject.ToString(), Is.EqualTo("The message.")); }
internal static string ExpectedTraceDataOutput(TraceFilter filter, TraceEventCache cache, string source, TraceEventType eventType, int id, object data) { if (filter != null && !filter.ShouldTrace(cache, source, eventType, id, null, null, data, null)) return string.Empty; var builder = new StringBuilder(); builder.AppendHeader(source, eventType, id); builder.Append(DefaultDelimiter); builder.Append(EscapedString(data.ToString())); builder.Append(DefaultDelimiter); builder.AppendTraceEventCache(cache); return builder.AppendLine().ToString(); }
internal static string ExpectedTraceEventOutput(TraceFilter filter, TraceEventCache cache, string source, TraceEventType eventType, int id, string format, object[] args) { if (filter != null && !filter.ShouldTrace(cache, source, eventType, id, format, args, null, null)) return string.Empty; var builder = new StringBuilder(); builder.AppendHeader(source, eventType, id); builder.Append(EscapedString(args != null ? string.Format(format, args) : format)); builder.Append(DefaultDelimiter); builder.Append(DefaultDelimiter); builder.AppendTraceEventCache(cache); return builder.AppendLine().ToString(); }
internal static string ExpectedTraceDataOutput(TraceFilter filter, TraceEventCache cache, string source, TraceEventType eventType, int id, object data) { if (filter != null && !filter.ShouldTrace(cache, source, eventType, id, null, null, data, null)) { return(string.Empty); } var builder = new StringBuilder(); builder.AppendHeader(source, eventType, id); builder.Append(DefaultDelimiter); builder.Append(EscapedString(data.ToString())); builder.Append(DefaultDelimiter); builder.AppendTraceEventCache(cache); return(builder.AppendLine().ToString()); }
internal static string ExpectedTraceEventOutput(TraceFilter filter, TraceEventCache cache, string source, TraceEventType eventType, int id, string format, object[] args) { if (filter != null && !filter.ShouldTrace(cache, source, eventType, id, format, args, null, null)) { return(string.Empty); } var builder = new StringBuilder(); builder.AppendHeader(source, eventType, id); builder.Append(EscapedString(args != null ? string.Format(format, args) : format)); builder.Append(DefaultDelimiter); builder.Append(DefaultDelimiter); builder.AppendTraceEventCache(cache); return(builder.AppendLine().ToString()); }
/// <summary> /// Based on the filters defined, work out whether the given event should be written to the trace listener /// </summary> /// <param name="cache">The trace data</param> /// <param name="source">The trace source</param> /// <param name="eventType">The type of event being logged</param> /// <param name="id">A unique ID for the event</param> /// <param name="formatOrMessage">A string format specification or literal string</param> /// <param name="args">Optional arguments included in the trace data</param> /// <param name="data1">An optional object included in the trace data</param> /// <param name="data">An optional collection of objects to be included in the trace data</param> /// <returns>True if the event should be logged</returns> public override bool ShouldTrace(TraceEventCache cache, string source, TraceEventType eventType, int id, string formatOrMessage, object[] args, object data1, object[] data) { bool andResult = true; foreach (MultiFilterMember member in _filterGroup) { TraceFilter filter = member.Filter; bool localResult = filter.ShouldTrace(cache, source, eventType, id, formatOrMessage, args, data1, data); if (member.Negate) { localResult = !localResult; } if (localResult && _filterGroup.Logic == FilterGroupLogic.Or) { return(true); } andResult = andResult && localResult; } return(andResult); }
internal static string ExpectedTraceDataOutput(string delimiter, TraceFilter filter, TraceEventCache cache, string source, TraceEventType eventType, int id, object[] data) { if (filter != null && !filter.ShouldTrace(cache, source, eventType, id, null, null, data, null)) return string.Empty; string secondDelimiter = delimiter == "," ? DefaultDelimiter : ","; var builder = new StringBuilder(); builder.AppendHeader(source, eventType, id, delimiter); builder.Append(delimiter); if (data != null) { for (int i = 0; i < data.Length; ++i) { if (i != 0) builder.Append(secondDelimiter); builder.Append(EscapedString(data[i].ToString())); } } builder.Append(delimiter); builder.AppendTraceEventCache(cache, delimiter); return builder.AppendLine().ToString(); }
internal static bool ShouldTrace( this TraceFilter @this, TraceEventCache cache, string source, TraceEventType eventType, int id, string formatOrMessage) { return(@this.ShouldTrace(cache, source, eventType, id, formatOrMessage, (object[])null, (object)null, (object[])null)); }