Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / wpf / src / Framework / MS / Internal / Utility / TraceLog.cs / 1 / TraceLog.cs
//---------------------------------------------------------------------------- // //// Copyright (C) Microsoft Corporation. All rights reserved. // // // Description: Log of recent actions. Use this to debug those nasty problems // that don't repro on demand and don't have enough information in a crash // dump. // // In the class(es) of interest, add a TraceLog object. At points of // interest, call TraceLog.Add to record a string in the log. After the // crash, call TraceLog.WriteLog (or simply examine the log directly in // the debugger). Log entries are timestamped. // //--------------------------------------------------------------------------- using System; using System.Collections; using System.Globalization; namespace MS.Internal.Utility { internal class TraceLog { // create an unbounded trace log internal TraceLog() : this(Int32.MaxValue) {} // create a trace log that remembers the last 'size' actions internal TraceLog(int size) { _size = size; _log = new ArrayList(); } // add an entry to the log. Args are just like String.Format internal void Add(string message, params object[] args) { // create timestamped message string string s = DateTime.Now.Ticks.ToString(CultureInfo.InvariantCulture) + " " + String.Format(CultureInfo.InvariantCulture, message, args); // if log is full, discard the oldest message if (_log.Count == _size) _log.RemoveAt(0); // add the new message _log.Add(s); } // write the log to the console internal void WriteLog() { for (int k=0; k<_log.Count; ++k) Console.WriteLine(_log[k]); } // return a printable id for the object internal static string IdFor(object o) { if (o == null) return "NULL"; else return String.Format(CultureInfo.InvariantCulture, "{0}.{1}", o.GetType().Name, o.GetHashCode()); } ArrayList _log; int _size; } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. //---------------------------------------------------------------------------- // //// Copyright (C) Microsoft Corporation. All rights reserved. // // // Description: Log of recent actions. Use this to debug those nasty problems // that don't repro on demand and don't have enough information in a crash // dump. // // In the class(es) of interest, add a TraceLog object. At points of // interest, call TraceLog.Add to record a string in the log. After the // crash, call TraceLog.WriteLog (or simply examine the log directly in // the debugger). Log entries are timestamped. // //--------------------------------------------------------------------------- using System; using System.Collections; using System.Globalization; namespace MS.Internal.Utility { internal class TraceLog { // create an unbounded trace log internal TraceLog() : this(Int32.MaxValue) {} // create a trace log that remembers the last 'size' actions internal TraceLog(int size) { _size = size; _log = new ArrayList(); } // add an entry to the log. Args are just like String.Format internal void Add(string message, params object[] args) { // create timestamped message string string s = DateTime.Now.Ticks.ToString(CultureInfo.InvariantCulture) + " " + String.Format(CultureInfo.InvariantCulture, message, args); // if log is full, discard the oldest message if (_log.Count == _size) _log.RemoveAt(0); // add the new message _log.Add(s); } // write the log to the console internal void WriteLog() { for (int k=0; k<_log.Count; ++k) Console.WriteLine(_log[k]); } // return a printable id for the object internal static string IdFor(object o) { if (o == null) return "NULL"; else return String.Format(CultureInfo.InvariantCulture, "{0}.{1}", o.GetType().Name, o.GetHashCode()); } ArrayList _log; int _size; } } // 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
- AutoGeneratedField.cs
- ProcessHostFactoryHelper.cs
- RightsManagementEncryptionTransform.cs
- ClientBuildManagerTypeDescriptionProviderBridge.cs
- PersistNameAttribute.cs
- Rijndael.cs
- SymbolTable.cs
- DbModificationCommandTree.cs
- _ListenerRequestStream.cs
- COM2ExtendedUITypeEditor.cs
- RegistryConfigurationProvider.cs
- DisplayInformation.cs
- MarshalByValueComponent.cs
- StateManagedCollection.cs
- ResolveNameEventArgs.cs
- Random.cs
- TextServicesDisplayAttribute.cs
- XmlNamespaceMapping.cs
- IntSecurity.cs
- GcHandle.cs
- ActiveXSite.cs
- Perspective.cs
- DesignerView.xaml.cs
- Nullable.cs
- BridgeDataReader.cs
- StickyNoteAnnotations.cs
- BoolExpression.cs
- FileAuthorizationModule.cs
- XmlValidatingReader.cs
- EnumValidator.cs
- HtmlContainerControl.cs
- LocalTransaction.cs
- ControlPropertyNameConverter.cs
- SchemaImporterExtension.cs
- dsa.cs
- ActionFrame.cs
- InkPresenter.cs
- TypeDelegator.cs
- Matrix3DValueSerializer.cs
- ActivityWithResult.cs
- ProvidersHelper.cs
- XNodeValidator.cs
- IntegerFacetDescriptionElement.cs
- RSAPKCS1KeyExchangeDeformatter.cs
- SmtpFailedRecipientsException.cs
- TargetControlTypeAttribute.cs
- CfgParser.cs
- CryptoKeySecurity.cs
- UriTemplateClientFormatter.cs
- XmlSchemaObject.cs
- dbenumerator.cs
- KeyGestureValueSerializer.cs
- CodeEventReferenceExpression.cs
- TextParaLineResult.cs
- StylusPointPropertyInfoDefaults.cs
- RangeValuePatternIdentifiers.cs
- _SecureChannel.cs
- ApplicationGesture.cs
- RankException.cs
- BlobPersonalizationState.cs
- EncodingDataItem.cs
- WindowsAuthenticationModule.cs
- IndicShape.cs
- RecommendedAsConfigurableAttribute.cs
- PrimitiveDataContract.cs
- DelayedRegex.cs
- TextReader.cs
- ObjectSet.cs
- ToolstripProfessionalRenderer.cs
- EventHandlerService.cs
- TrackingQueryElement.cs
- BitmapEffectGeneralTransform.cs
- PropertyChangedEventManager.cs
- MetabaseReader.cs
- ConfigurationElementProperty.cs
- ColorDialog.cs
- UxThemeWrapper.cs
- TextBoxRenderer.cs
- RTLAwareMessageBox.cs
- BeginStoryboard.cs
- XPathAncestorQuery.cs
- OpenTypeLayout.cs
- HttpCookie.cs
- GC.cs
- XslTransform.cs
- NotConverter.cs
- XsltContext.cs
- securitycriticaldataformultiplegetandset.cs
- NetworkInformationException.cs
- MailSettingsSection.cs
- PasswordTextContainer.cs
- ZipIOCentralDirectoryBlock.cs
- ComponentEvent.cs
- XmlValidatingReaderImpl.cs
- CssTextWriter.cs
- DesignConnectionCollection.cs
- ApplicationFileParser.cs
- SegmentInfo.cs
- MailDefinition.cs
- SiteMapProvider.cs