Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / CompMod / System / Diagnostics / DelimitedListTraceListener.cs / 1305376 / DelimitedListTraceListener.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- using System; using System.Text; using System.Globalization; using System.IO; using System.Collections; using System.Security.Permissions; using System.Runtime.Versioning; namespace System.Diagnostics { [HostProtection(Synchronization=true)] public class DelimitedListTraceListener : TextWriterTraceListener { string delimiter = ";"; string secondaryDelim = ","; bool initializedDelim = false; public DelimitedListTraceListener(Stream stream) : base(stream) { } public DelimitedListTraceListener(Stream stream, string name) : base(stream, name) { } public DelimitedListTraceListener(TextWriter writer) : base(writer) { } public DelimitedListTraceListener(TextWriter writer, string name) : base(writer, name) { } [ResourceExposure(ResourceScope.Machine)] [ResourceConsumption(ResourceScope.Machine)] public DelimitedListTraceListener(string fileName) : base (fileName) { } [ResourceExposure(ResourceScope.Machine)] [ResourceConsumption(ResourceScope.Machine)] public DelimitedListTraceListener(string fileName, string name) : base(fileName, name) { } public string Delimiter { get { lock(this) { // Probably overkill if (!initializedDelim) { if (Attributes.ContainsKey("delimiter")) delimiter = Attributes["delimiter"]; initializedDelim = true; } } return delimiter; } set { if (value == null) throw new ArgumentNullException("Delimiter"); if (value.Length == 0) throw new ArgumentException(SR.GetString("Generic_ArgCantBeEmptyString", "Delimiter")); lock(this) { delimiter = value; initializedDelim = true; } if (delimiter == ",") secondaryDelim = ";"; else secondaryDelim = ","; } } protected override internal string[] GetSupportedAttributes() { return new String[]{"delimiter"}; } public override void TraceEvent(TraceEventCache eventCache, String source, TraceEventType eventType, int id, string format, params object[] args) { if (Filter != null && !Filter.ShouldTrace(eventCache, source, eventType, id, format, args)) return; WriteHeader(source, eventType, id); if (args != null) WriteEscaped(String.Format(CultureInfo.InvariantCulture, format, args)); else WriteEscaped(format); Write(Delimiter); // Use get_Delimiter // one more delimiter for the data object Write(Delimiter); // Use get_Delimiter WriteFooter(eventCache); } public override void TraceEvent(TraceEventCache eventCache, String source, TraceEventType eventType, int id, string message) { if (Filter != null && !Filter.ShouldTrace(eventCache, source, eventType, id, message)) return; WriteHeader(source, eventType, id); WriteEscaped(message); Write(Delimiter); // Use get_Delimiter // one more delimiter for the data object Write(Delimiter); // Use get_Delimiter WriteFooter(eventCache); } public override void TraceData(TraceEventCache eventCache, String source, TraceEventType eventType, int id, object data) { if (Filter != null && !Filter.ShouldTrace(eventCache, source, eventType, id, null, null, data)) return; WriteHeader(source, eventType, id); // first a delimiter for the message Write(Delimiter); // Use get_Delimiter WriteEscaped(data.ToString()); Write(Delimiter); // Use get_Delimiter WriteFooter(eventCache); } public override void TraceData(TraceEventCache eventCache, String source, TraceEventType eventType, int id, params object[] data) { if (Filter != null && !Filter.ShouldTrace(eventCache, source, eventType, id, null, null, null, data)) return; WriteHeader(source, eventType, id); // first a delimiter for the message Write(Delimiter); // Use get_Delimiter if (data != null) { for (int i=0; i
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- EncryptedType.cs
- PublisherIdentityPermission.cs
- SQLCharsStorage.cs
- FlowDocumentPageViewerAutomationPeer.cs
- SelectionItemProviderWrapper.cs
- ResXResourceSet.cs
- ConfigurationLocation.cs
- EditingCommands.cs
- SatelliteContractVersionAttribute.cs
- HtmlTableCell.cs
- NumberSubstitution.cs
- StateChangeEvent.cs
- WebBrowserBase.cs
- WebCategoryAttribute.cs
- XmlParserContext.cs
- SeverityFilter.cs
- StreamReader.cs
- SqlParameterizer.cs
- BindingListCollectionView.cs
- Choices.cs
- TargetException.cs
- XmlBindingWorker.cs
- PTConverter.cs
- TextBoxLine.cs
- XmlElementAttributes.cs
- ToolStripItemTextRenderEventArgs.cs
- StoreItemCollection.Loader.cs
- DataServiceContext.cs
- EventLogger.cs
- Action.cs
- DefaultTraceListener.cs
- RewritingPass.cs
- ContainsRowNumberChecker.cs
- HttpConfigurationSystem.cs
- RegistryPermission.cs
- DefaultWorkflowTransactionService.cs
- DependencyObject.cs
- BlurBitmapEffect.cs
- IDQuery.cs
- Inline.cs
- Triplet.cs
- Site.cs
- Wizard.cs
- NTAccount.cs
- LeafCellTreeNode.cs
- ExtendedPropertyCollection.cs
- NavigationProperty.cs
- MobileResource.cs
- ToolStripDropDownClosingEventArgs.cs
- LinkedList.cs
- ConfigurationLocation.cs
- DiscriminatorMap.cs
- SharedTcpTransportManager.cs
- SystemColors.cs
- SHA1CryptoServiceProvider.cs
- ProviderException.cs
- CodeSnippetExpression.cs
- UserControlBuildProvider.cs
- SerializationAttributes.cs
- AdRotator.cs
- SafeRightsManagementQueryHandle.cs
- RepeaterItemCollection.cs
- WaitHandle.cs
- UIElementCollection.cs
- SecurityKeyUsage.cs
- Odbc32.cs
- KnownColorTable.cs
- PersonalizationStateQuery.cs
- PenThreadWorker.cs
- RoleServiceManager.cs
- FlowLayoutPanelDesigner.cs
- DataObjectFieldAttribute.cs
- EdgeProfileValidation.cs
- FieldToken.cs
- SslStream.cs
- GridViewRow.cs
- Pen.cs
- DocComment.cs
- ActivityTypeDesigner.xaml.cs
- SQLSingle.cs
- PartialTrustVisibleAssembly.cs
- MatrixConverter.cs
- ConnectionManagementSection.cs
- DataControlButton.cs
- WebConfigurationHost.cs
- XPathArrayIterator.cs
- InvokeBinder.cs
- AllMembershipCondition.cs
- SmtpClient.cs
- ExpressionList.cs
- SortQuery.cs
- COM2Enum.cs
- TimelineCollection.cs
- HttpModulesSection.cs
- SqlCacheDependencySection.cs
- BamlBinaryReader.cs
- AnnotationComponentChooser.cs
- ImageBrush.cs
- InputEventArgs.cs
- CodeSubDirectoriesCollection.cs