Example #1
0
        public static void PrepareListenerData(RITraceListenerData tData, TraceEventType eventType)
        {
            switch (eventType)
            {
            case TraceEventType.Information: tData.MessageType = MessageType.SendInformation; break;

            case TraceEventType.Warning: tData.MessageType = MessageType.SendWarning; break;

            case TraceEventType.Error: tData.MessageType = MessageType.SendError; break;

            case TraceEventType.Critical: tData.MessageType = MessageType.SendFatal; break;

            case TraceEventType.Start: tData.MessageType = MessageType.SendStart; break;

            case TraceEventType.Stop: tData.MessageType = MessageType.SendStop; break;

            case TraceEventType.Suspend: tData.MessageType = MessageType.SendSuspend; break;

            case TraceEventType.Resume: tData.MessageType = MessageType.SendResume; break;

            case TraceEventType.Transfer: tData.MessageType = MessageType.SendTransfer; break;

            case TraceEventType.Verbose: tData.MessageType = MessageType.SendVerbose; break;

            default:
                // safety net catch in case a new or unknown TraceEventType was added in future releases of .NET
                tData.MessageType = MessageType.SendMessage;
                tData.Message     = String.Format("[{0}]: {1}", eventType, tData.Message);
                break;
            }
        }
Example #2
0
        public override void WriteLine(String msg)
        {
            RITraceListenerData tData = new RITraceListenerData()
            {
                MessageType = MessageType.SendMessage, Message = msg
            };

            TraceData(null, null, TraceEventType.Information, 0, tData);
        }
Example #3
0
        public override void TraceEvent(TraceEventCache eventCache, string source, TraceEventType eventType, int id, string message)
        {
            RITraceListenerData tData = new RITraceListenerData()
            {
                Message = message
            };

            PrepareListenerData(tData, eventType);

            TraceData(null, null, TraceEventType.Information, 0, tData);
        }
Example #4
0
        public override void TraceData(TraceEventCache eventCache, string source, TraceEventType eventType, int id, object data)
        {
            ActiveStates states = CurrentActiveStates;

            if (data is RITraceListenerData)
            {
                RITraceListenerData tData = data as RITraceListenerData;
                try
                {
                    // ignore complex message types as they are not
                    // allowed for simple message types
                    if (tData.MessageType >= RIUtils.ComplexMessageTypeStartRange)
                    {
                        return;
                    }

                    // amend extended properties to RI message if any
                    if (tData.ExtendedProperties != null && tData.ExtendedProperties.Count > 0)
                    {
                        StringBuilder sb = tData.Details == null ? new StringBuilder() : null;
                        if (sb != null)
                        {
                            sb.AppendLine("Extended Properties");
                            sb.AppendLine("-------------------");
                        }

                        foreach (String key in tData.ExtendedProperties.Keys)
                        {
                            String value = tData.ExtendedProperties[key] != null ? tData.ExtendedProperties[key].ToString() : String.Empty;
                            RIExtendedMessageProperty.AttachToSingleMessage("Extended Properties", key, value);

                            if (sb != null)
                            {
                                sb.AppendFormat("{0}: {1}{2}", key, value, Environment.NewLine);
                            }
                        }

                        if (sb != null)
                        {
                            tData.Details = sb.ToString();
                        }
                    }

                    if (tData.Message.StartsWith("[Enter]"))
                    {
                        states.RI.EnterMethod(tData.Message.Replace("[Enter]", String.Empty).Trim());
                        return;
                    }
                    else if (tData.Message.StartsWith("[Exit]"))
                    {
                        states.RI.ExitMethod(tData.Message.Replace("[Exit]", String.Empty).Trim());
                        return;
                    }

                    TrackIndent();
                    try
                    {
                        states.RI.Send(tData.MessageType, GetFullWriteMessage(tData.Message), tData.Details == null ? null : tData.Details.ToString());
                    }
                    finally
                    {
                        TrackIndent();
                    }
                }
                catch (Exception ex)
                {
                    if (!SendInternalError(states.RI, tData.MessageType, ex))
                    {
                        throw;
                    }
                }
            }
            else
            {
                TraceEvent(eventCache, source, eventType, id, data.ToString());
            }
        }