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
- NonParentingControl.cs
- TreeNodeCollection.cs
- IndexedEnumerable.cs
- SqlWriter.cs
- ListBox.cs
- TraceSection.cs
- TrueReadOnlyCollection.cs
- DrawingBrush.cs
- MapPathBasedVirtualPathProvider.cs
- _NTAuthentication.cs
- EditorAttributeInfo.cs
- FileDialog_Vista.cs
- XmlLoader.cs
- Drawing.cs
- DataControlCommands.cs
- MasterPageParser.cs
- TextShapeableCharacters.cs
- DataTableCollection.cs
- SaveFileDialog.cs
- EntityDataSourceWizardForm.cs
- DBPropSet.cs
- EntityClassGenerator.cs
- RichTextBox.cs
- Polyline.cs
- BamlTreeUpdater.cs
- CapiNative.cs
- COAUTHIDENTITY.cs
- EncoderExceptionFallback.cs
- WebBrowser.cs
- InplaceBitmapMetadataWriter.cs
- ColumnReorderedEventArgs.cs
- Delegate.cs
- HttpStaticObjectsCollectionBase.cs
- AuthenticationModuleElement.cs
- Stackframe.cs
- GridPattern.cs
- _FtpDataStream.cs
- filewebresponse.cs
- ReferencedAssemblyResolver.cs
- Rect.cs
- handlecollector.cs
- X509Extension.cs
- ADMembershipProvider.cs
- PropertyTabChangedEvent.cs
- FileLevelControlBuilderAttribute.cs
- XmlSchemaExporter.cs
- CollectionViewSource.cs
- CodeThrowExceptionStatement.cs
- HttpCookiesSection.cs
- ColumnMapTranslator.cs
- FixedPage.cs
- BoundField.cs
- XmlCountingReader.cs
- _ShellExpression.cs
- SQLStringStorage.cs
- Attachment.cs
- XamlFilter.cs
- TemplateControlBuildProvider.cs
- DataGridViewColumnCollection.cs
- XhtmlBasicPhoneCallAdapter.cs
- CertificateElement.cs
- Utilities.cs
- ObjectFactoryCodeDomTreeGenerator.cs
- ColumnResizeUndoUnit.cs
- RoleGroupCollection.cs
- TimelineClockCollection.cs
- XhtmlBasicTextBoxAdapter.cs
- UserPreferenceChangedEventArgs.cs
- VirtualizedContainerService.cs
- ILGenerator.cs
- MouseGesture.cs
- AssemblySettingAttributes.cs
- DownloadProgressEventArgs.cs
- SessionParameter.cs
- XmlSchemaSimpleContent.cs
- TreeViewDesigner.cs
- XmlSchemaCompilationSettings.cs
- MappingSource.cs
- MemberHolder.cs
- FileLoadException.cs
- OleDbConnectionFactory.cs
- SafeWaitHandle.cs
- LocationSectionRecord.cs
- PeerApplication.cs
- HitTestParameters.cs
- ExtenderControl.cs
- CounterNameConverter.cs
- InputBindingCollection.cs
- SystemParameters.cs
- LabelEditEvent.cs
- PnrpPeerResolverBindingElement.cs
- XmlElementAttribute.cs
- TemplateControlParser.cs
- DataGridViewCellEventArgs.cs
- NamespaceInfo.cs
- TrailingSpaceComparer.cs
- WindowsScrollBar.cs
- InvokeBase.cs
- XmlNodeList.cs
- SQLInt64.cs