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
- Vertex.cs
- BufferBuilder.cs
- CodeTypeParameterCollection.cs
- TrustSection.cs
- NativeWrapper.cs
- InplaceBitmapMetadataWriter.cs
- DefaultHttpHandler.cs
- ToolStripDropDownDesigner.cs
- SelectionGlyphBase.cs
- PersianCalendar.cs
- ComboBoxDesigner.cs
- SrgsElementList.cs
- Transactions.cs
- FactoryId.cs
- OneOfConst.cs
- SQLSingleStorage.cs
- SimpleNameService.cs
- StorageEndPropertyMapping.cs
- CollectionDataContract.cs
- CultureSpecificStringDictionary.cs
- ActiveXMessageFormatter.cs
- UriScheme.cs
- StylusPointPropertyId.cs
- TableRowGroup.cs
- TextLineBreak.cs
- RemoteDebugger.cs
- State.cs
- DataFieldConverter.cs
- PrimaryKeyTypeConverter.cs
- XNameConverter.cs
- BindingCompleteEventArgs.cs
- ExecutedRoutedEventArgs.cs
- XmlExceptionHelper.cs
- TypeName.cs
- PageContentAsyncResult.cs
- EventTask.cs
- LocatorBase.cs
- AbandonedMutexException.cs
- HttpListenerPrefixCollection.cs
- ReservationCollection.cs
- CursorInteropHelper.cs
- EncryptedData.cs
- AnyReturnReader.cs
- JapaneseLunisolarCalendar.cs
- JsonWriterDelegator.cs
- Paragraph.cs
- GetPageNumberCompletedEventArgs.cs
- XmlHelper.cs
- GridItemCollection.cs
- ISessionStateStore.cs
- ReflectionTypeLoadException.cs
- ReadOnlyCollectionBase.cs
- Calendar.cs
- CompilerWrapper.cs
- XmlCDATASection.cs
- Material.cs
- SmtpTransport.cs
- metadatamappinghashervisitor.cs
- DataGridState.cs
- LinqDataSourceValidationException.cs
- RC2.cs
- BulletDecorator.cs
- SqlFunctionAttribute.cs
- VerticalAlignConverter.cs
- SoapSchemaMember.cs
- XmlTextReader.cs
- OdbcHandle.cs
- TargetControlTypeAttribute.cs
- DBCommandBuilder.cs
- FileVersionInfo.cs
- OpacityConverter.cs
- NativeMethodsCLR.cs
- ConstraintEnumerator.cs
- TraceContext.cs
- EntityDataReader.cs
- QueryAccessibilityHelpEvent.cs
- OpenFileDialog.cs
- ResXBuildProvider.cs
- Section.cs
- AutomationTextAttribute.cs
- WorkflowViewElement.cs
- GridItem.cs
- SingleAnimation.cs
- IntSumAggregationOperator.cs
- OleStrCAMarshaler.cs
- RubberbandSelector.cs
- GeneralTransformGroup.cs
- BufferedGraphics.cs
- LingerOption.cs
- ETagAttribute.cs
- WmlControlAdapter.cs
- XmlSchemaCompilationSettings.cs
- EntityStoreSchemaFilterEntry.cs
- PluralizationServiceUtil.cs
- FixedTextPointer.cs
- DrawingVisualDrawingContext.cs
- FileDetails.cs
- TreeViewDataItemAutomationPeer.cs
- ModelService.cs
- OperatingSystem.cs