static public MessageTextFlag DetermineMessageTextFlagParam(IListenerInfo listener) { try { MessageTextFlag msgFlags = MessageTextFlag.None; Type msgTextFlagType = typeof(MessageTextFlag); String details = listener.Params["messageDetails"].FullTrim(); if (details != String.Empty) { String[] flags = details.Split(new char[] { '|' }, StringSplitOptions.RemoveEmptyEntries); foreach (String flag in flags) { if (Enum.IsDefined(msgTextFlagType, flag)) { msgFlags = msgFlags | (MessageTextFlag)Enum.Parse(msgTextFlagType, flag); } } } return(msgFlags); } catch (Exception ex) { throw new ReflectInsightException(String.Format("Error reading message detail parameter configuration values for Listener: '{0}' using details: '{1}'.", listener.Name, listener.Details), ex); } }
public virtual void UpdateParameterVariables(IListenerInfo listener) { FDetails = ListenerFileHelper.DetermineMessageTextFlagParam(listener); FMessagePattern = ListenerFileHelper.DetermineMessageTextPattern(listener); FTimePatterns = RIUtils.GetListOfTimePatterns(FMessagePattern); FColored = listener.Params["colored"].IfNullOrEmptyUseDefault("true").Trim() == "true"; }
static public String Convert(ReflectInsightPackage package, MessageTextFlag flags, String messagePattern, List <String> timePatterns) { if (package.FMessageType == MessageType.Clear || RIUtils.IsViewerSpecificMessageType(package.FMessageType)) { return(String.Empty); } StringBuilder sb = new StringBuilder(); switch (package.FMessageType) { case MessageType.AddSeparator: sb.AppendLine(FSeparator); break; default: AppendPackage(sb, package, flags, messagePattern, timePatterns); break; } return(sb.ToString()); }
static public String Convert(ReflectInsightPackage package, MessageTextFlag flags) { return(Convert(package, flags, null, null)); }
static public String Convert(ReflectInsightPackage package, MessageTextFlag flags, String messagePattern) { return(Convert(package, flags, messagePattern, null)); }
static private void AppendPackage(StringBuilder sb, ReflectInsightPackage package, MessageTextFlag flags, String messagePattern, List <String> timePatterns) { AppendMessage(sb, package, messagePattern, timePatterns, flags); AppendMessageSubDetails(sb, package, flags); AppendMessageDetails(sb, package, flags); AppendMessageProperties(sb, package, flags); AppendMessageExtendedProperties(sb, package, flags); }
static public void AppendMessage(StringBuilder sb, ReflectInsightPackage package, String messagePattern, List <String> timePatterns, MessageTextFlag flags) { if ((flags & MessageTextFlag.Message) != MessageTextFlag.Message) { return; } String message = package.FMessage; switch (package.FMessageType) { case MessageType.AddCheckpoint: message = message.Replace("Checkpoint:", String.Format("[Checkpoint.{0}]: ", (Checkpoint)package.FMessageSubType)); break; case MessageType.SendCheckmark: message = message.Replace("Checkmark:", String.Format("[Checkmark.{0}]: ", (Checkmark)package.FMessageSubType)); break; case MessageType.SendLevel: message = String.Format("[Level.{0}]: {1}", (LevelType)package.FMessageSubType, message); break; } if (!string.IsNullOrWhiteSpace(messagePattern)) { sb.AppendFormat("{0}", RIUtils.PrepareString(messagePattern, package, String.Empty, timePatterns)); } else { sb.AppendFormat("{0}", message); } sb.AppendLine(); }
static public void AppendMessageDetails(StringBuilder sb, ReflectInsightPackage package, MessageTextFlag flags) { if (((flags & MessageTextFlag.Details) != MessageTextFlag.Details) || !package.HasDetails) { return; } if (package.IsDetail <DetailContainerString>()) { sb.AppendLine(); sb.AppendLine(package.GetDetails <DetailContainerString>().FData); sb.AppendLine(); return; } switch (package.FMessageType) { case MessageType.EnterMethod: case MessageType.SendObject: case MessageType.SendProcessInformation: case MessageType.SendThreadInformation: case MessageType.SendSystemInformation: case MessageType.SendLoadedAssemblies: case MessageType.SendLoadedProcesses: case MessageType.SendAppDomainInformation: case MessageType.SendMemoryStatus: case MessageType.SendHttpModuleInformation: case MessageType.SendMiniDumpFile: case MessageType.SendCustomData: case MessageType.SendHttpRequest: sb.AppendLine(); AppendCustomData(sb, package); sb.AppendLine(); break; case MessageType.SendCollection: sb.AppendLine(); AppendCollection(sb, package); sb.AppendLine(); break; case MessageType.SendDataSet: case MessageType.SendDataTable: case MessageType.SendDataView: case MessageType.SendDataSetSchema: case MessageType.SendDataTableSchema: case MessageType.SendLinqResults: case MessageType.SendTypedCollection: sb.AppendLine(); AppendData(sb, package); sb.AppendLine(); break; case MessageType.SendMemory: case MessageType.SendStream: sb.AppendLine(); AppendMemory(sb, package); sb.AppendLine(); break; case MessageType.SendColor: sb.AppendLine(); AppendColor(sb, package); sb.AppendLine(); break; default: break; } }
static public void AppendMessageSubDetails(StringBuilder sb, ReflectInsightPackage package, MessageTextFlag flags) { if (((flags & MessageTextFlag.Details) != MessageTextFlag.Details) || !package.HasSubDetails) { return; } switch (package.FMessageType) { case MessageType.SendAttachment: sb.AppendLine(); AppendAttachment(sb, package); sb.AppendLine(); break; } }
static public void AppendMessageExtendedProperties(StringBuilder sb, ReflectInsightPackage package, MessageTextFlag flags) { if ((flags & MessageTextFlag.ExtendedProperties) != MessageTextFlag.ExtendedProperties || !package.HasExtendedProperties) { return; } if ((flags & MessageTextFlag.ExtendedProperties) != MessageTextFlag.Details) { sb.AppendLine(); } foreach (ReflectInsightExtendedProperties exProps in package.FExtPropertyContainer.ExtendedProperties) { if (exProps.Properties.Count == 0) { continue; } foreach (String key in exProps.Properties.AllKeys) { sb.AppendFormat("{0,11}: {1}: {2}{3}", exProps.Caption, key, exProps.Properties[key], Environment.NewLine); } } sb.AppendLine(); }
static public void AppendMessageProperties(StringBuilder sb, ReflectInsightPackage package, MessageTextFlag flags) { if ((flags & MessageTextFlag.Properties) != MessageTextFlag.Properties) { return; } if ((flags & MessageTextFlag.Properties) != MessageTextFlag.Details) { sb.AppendLine(); } sb.AppendLine("Message Properties"); sb.AppendLine(FLine); sb.AppendFormat("{0,11}: {1}{2}", "Category", package.FCategory, Environment.NewLine); sb.AppendFormat("{0,11}: {1}{2}", "Computer", package.FMachineName, Environment.NewLine); sb.AppendFormat("{0,11}: {1}{2}", "Application", package.FApplication, Environment.NewLine); sb.AppendFormat("{0,11}: {1}{2}", "User Name", package.FUserName, Environment.NewLine); sb.AppendFormat("{0,11}: {1}{2}", "Process Id", package.FProcessID, Environment.NewLine); sb.AppendFormat("{0,11}: {1}{2}", "Thread Id", package.FThreadID, Environment.NewLine); sb.AppendFormat("{0,11}: {1}{2}", "Request Id", package.FRequestID, Environment.NewLine); sb.AppendFormat("{0,11}: {1}{2}", "Time", package.FDateTime.ToLocalTime(), Environment.NewLine); sb.AppendFormat("{0,11}: {1}{2}", "Session Id", package.FSessionID, Environment.NewLine); sb.AppendFormat("{0,11}: {1}{2}", "Domain Id", package.FDomainID, Environment.NewLine); sb.AppendFormat("{0,11}: {1}{2}", "User Domain", package.FUserDomainName, Environment.NewLine); sb.AppendLine(); }