Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / TransactionBridge / Microsoft / Transactions / Wsat / Messaging / DebugTraceHelper.cs / 1 / DebugTraceHelper.cs
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace Microsoft.Transactions.Wsat.Messaging { using System; using System.Diagnostics; using System.Globalization; using System.Threading; using Microsoft.Transactions.Bridge; // A base class for formatting debug trace output. This class // ensures that all messages are formatted similarly, so that // output from multiple sources can be lined up, compared, and // correlated. An output message from this class looks like: // // 2003-11-21 18:52:24Z [ 808] [DRIVER ] : Awaiting recovery done... // // The fields are, from left to right: date, time, thread, // name, and message. // // The TraceSwitch constructor parameter indicates which trace // switch controls the trace output. The Name parameter provides // a tag for the compoent doing the tracing (DRIVER, in the above // example). For performance, you should probably create a static // instance of one of these and use it for everything. // // Each of the trace functions (TraceVerbose, TraceWarning, etc.) // can take a format string and parameters, ala String.Format. // The number of parameters, however, is limited to four. This is // because variable-length argument lists cause array allocations, // and the performance impact of these functions should be as // small as possible when tracing is disabled. // sealed class DebugTraceHelper { string name; TraceSwitch traceSwitch; public DebugTraceHelper(string name, TraceSwitch traceSwitch) { this.name = name; this.traceSwitch = traceSwitch; } string FormatMessage(string message) { return String.Format( CultureInfo.InvariantCulture, "{0} [{1,4:x8}] [{2}] : {3}", DateTime.Now.ToString( "u", DateTimeFormatInfo.InvariantInfo), Thread.CurrentThread.ManagedThreadId.ToString( "x", CultureInfo.InvariantCulture), this.name, message); } public void Trace(TraceLevel level, string message) { if (TraceEnabled(level)) { message = FormatMessage(message); System.Diagnostics.Trace.WriteLine(message); } } public void Trace(TraceLevel level, string message, object param0) { if (TraceEnabled(level)) { message = String.Format(CultureInfo.InvariantCulture, message, param0); message = FormatMessage(message); System.Diagnostics.Trace.WriteLine(message); } } public void Trace(TraceLevel level, string message, object param0, object param1) { if (TraceEnabled(level)) { message = String.Format(CultureInfo.InvariantCulture, message, param0, param1); message = FormatMessage(message); System.Diagnostics.Trace.WriteLine(message); } } public void Trace(TraceLevel level, string message, object param0, object param1, object param2) { if (TraceEnabled(level)) { message = String.Format(CultureInfo.InvariantCulture, message, param0, param1, param2); message = FormatMessage(message); System.Diagnostics.Trace.WriteLine(message); } } public void Trace(TraceLevel level, string message, object param0, object param1, object param2, object param3) { if (TraceEnabled(level)) { message = String.Format(CultureInfo.InvariantCulture, message, param0, param1, param2, param3); message = FormatMessage(message); System.Diagnostics.Trace.WriteLine(message); } } public bool TraceEnabled(TraceLevel level) { return (this.traceSwitch.Level >= level); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- RegistryKey.cs
- AppliesToBehaviorDecisionTable.cs
- Variant.cs
- IResourceProvider.cs
- Command.cs
- listitem.cs
- ItemList.cs
- TextSchema.cs
- TailPinnedEventArgs.cs
- PhysicalAddress.cs
- SimpleExpression.cs
- Stream.cs
- FreezableOperations.cs
- OrderByBuilder.cs
- GroupJoinQueryOperator.cs
- EditCommandColumn.cs
- IconEditor.cs
- TextRangeSerialization.cs
- ResourceAttributes.cs
- UrlMappingsSection.cs
- DefaultAssemblyResolver.cs
- SortQuery.cs
- DesignerActionHeaderItem.cs
- CapabilitiesPattern.cs
- TdsParserHelperClasses.cs
- DecoderFallback.cs
- DataGridViewComponentPropertyGridSite.cs
- NodeInfo.cs
- RoleGroup.cs
- ObjectViewFactory.cs
- ContractTypeNameCollection.cs
- WsdlHelpGeneratorElement.cs
- LogLogRecordEnumerator.cs
- FileSystemWatcher.cs
- UriTemplateClientFormatter.cs
- WebPageTraceListener.cs
- SerializationFieldInfo.cs
- TemplateAction.cs
- CngKeyBlobFormat.cs
- XmlSubtreeReader.cs
- ConfigXmlSignificantWhitespace.cs
- Run.cs
- Vector.cs
- CompilationSection.cs
- DynamicQueryableWrapper.cs
- DataPagerFieldCollection.cs
- InputReportEventArgs.cs
- FormsAuthentication.cs
- SQLConvert.cs
- XPathItem.cs
- TextEffectCollection.cs
- AuthenticationSection.cs
- BinaryNegotiation.cs
- DynamicDataExtensions.cs
- FontFamily.cs
- UntypedNullExpression.cs
- XmlDictionaryWriter.cs
- SqlProcedureAttribute.cs
- TextMarkerSource.cs
- BaseCodePageEncoding.cs
- LOSFormatter.cs
- PolygonHotSpot.cs
- SQLMoney.cs
- Native.cs
- ZipQueryOperator.cs
- DocumentEventArgs.cs
- ParserStreamGeometryContext.cs
- InstanceDescriptor.cs
- SingleQueryOperator.cs
- TreeNodeBindingCollection.cs
- FixedBufferAttribute.cs
- StylusLogic.cs
- FollowerQueueCreator.cs
- ParenthesizePropertyNameAttribute.cs
- Decorator.cs
- UpdatePanelControlTrigger.cs
- ScrollItemProviderWrapper.cs
- EntityTypeBase.cs
- AssociationSet.cs
- EntryPointNotFoundException.cs
- ScriptControlDescriptor.cs
- WebPartCatalogAddVerb.cs
- RegexInterpreter.cs
- DataContractSerializerMessageContractImporter.cs
- TemplateBuilder.cs
- MiniCustomAttributeInfo.cs
- shaperfactoryquerycacheentry.cs
- DataGridCaption.cs
- ConfigXmlReader.cs
- HttpModuleActionCollection.cs
- CodeCommentStatement.cs
- MouseActionValueSerializer.cs
- sqlnorm.cs
- IssuedTokenServiceElement.cs
- VideoDrawing.cs
- ApplicationActivator.cs
- PathFigureCollectionValueSerializer.cs
- XXXOnTypeBuilderInstantiation.cs
- SynchronizationLockException.cs
- PeerNameRecordCollection.cs