Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / 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
- ResourceDescriptionAttribute.cs
- DataRelationCollection.cs
- SafeLibraryHandle.cs
- MatchAttribute.cs
- BitmapCodecInfoInternal.cs
- EventManager.cs
- ContextMarshalException.cs
- EventProvider.cs
- XmlAnyElementAttribute.cs
- OdbcInfoMessageEvent.cs
- FocusWithinProperty.cs
- ButtonAutomationPeer.cs
- HttpFileCollection.cs
- BmpBitmapEncoder.cs
- WebServicesSection.cs
- MarkedHighlightComponent.cs
- TemplateBindingExtension.cs
- DataGridViewSelectedCellCollection.cs
- WindowsStartMenu.cs
- shaperfactory.cs
- GeneratedCodeAttribute.cs
- UnsafeNetInfoNativeMethods.cs
- InstanceCompleteException.cs
- KeyGesture.cs
- XamlStream.cs
- CancellationTokenRegistration.cs
- FileUpload.cs
- DataGridDesigner.cs
- CodeMethodInvokeExpression.cs
- DES.cs
- MediaElement.cs
- HwndMouseInputProvider.cs
- LOSFormatter.cs
- ProfileGroupSettings.cs
- ObjectCacheSettings.cs
- securitymgrsite.cs
- Double.cs
- PathHelper.cs
- SynchronizationLockException.cs
- NonVisualControlAttribute.cs
- InternalPolicyElement.cs
- SecurityDescriptor.cs
- MissingManifestResourceException.cs
- HtmlElement.cs
- HtmlLinkAdapter.cs
- XmlSchemaValidator.cs
- PageRanges.cs
- XsltInput.cs
- CharacterMetricsDictionary.cs
- PlatformCulture.cs
- SrgsRule.cs
- HtmlInputReset.cs
- ProfileManager.cs
- TypeToken.cs
- CssStyleCollection.cs
- Point3DAnimation.cs
- PrefixQName.cs
- RuntimeConfigurationRecord.cs
- Attributes.cs
- LineSegment.cs
- ThemeableAttribute.cs
- ExpressionPrinter.cs
- UserControlCodeDomTreeGenerator.cs
- StyleSheetDesigner.cs
- EmissiveMaterial.cs
- HttpRequest.cs
- ProtocolInformationReader.cs
- RightsManagementLicense.cs
- ReachPageContentCollectionSerializerAsync.cs
- KoreanCalendar.cs
- InputScopeAttribute.cs
- WebServiceParameterData.cs
- FontStretchConverter.cs
- FixedHyperLink.cs
- FieldInfo.cs
- InfoCardAsymmetricCrypto.cs
- ComNativeDescriptor.cs
- TemplateBindingExpression.cs
- UnknownWrapper.cs
- CharConverter.cs
- NotImplementedException.cs
- DoubleAnimationUsingKeyFrames.cs
- BaseCodeDomTreeGenerator.cs
- mediaeventshelper.cs
- ObjectCloneHelper.cs
- Byte.cs
- CodeParameterDeclarationExpression.cs
- TextSelectionProcessor.cs
- Style.cs
- HtmlInputButton.cs
- WebConfigurationFileMap.cs
- StringFunctions.cs
- TextEditorSpelling.cs
- BindingEntityInfo.cs
- BidOverLoads.cs
- ComponentEvent.cs
- AddressingProperty.cs
- EpmContentDeSerializerBase.cs
- Identity.cs
- WebPartManagerInternals.cs