Example #1
4
        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);
    }
Example #3
0
        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."));
        }
Example #4
0
        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();
        }
Example #5
0
        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();
        }
Example #6
0
        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());
        }
Example #7
0
        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());
        }
Example #8
0
        /// <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);
        }
Example #9
0
        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));
 }