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
- WhitespaceRule.cs
- SplitContainer.cs
- TableLayoutPanel.cs
- JsonFormatMapping.cs
- NetCodeGroup.cs
- GlyphCache.cs
- BitmapEffectvisualstate.cs
- XsdBuildProvider.cs
- HwndSubclass.cs
- ResourcePart.cs
- LineGeometry.cs
- DoubleAnimationClockResource.cs
- Transform.cs
- AdornerLayer.cs
- ToolBarButtonClickEvent.cs
- EdmComplexPropertyAttribute.cs
- basemetadatamappingvisitor.cs
- ListDictionary.cs
- BitmapEffectCollection.cs
- DataServiceRequestException.cs
- SelectionListDesigner.cs
- _SpnDictionary.cs
- GeometryHitTestParameters.cs
- ConnectionsZone.cs
- ObjectParameterCollection.cs
- XsltLoader.cs
- xml.cs
- EntityContainer.cs
- ChangePassword.cs
- NamedPermissionSet.cs
- Token.cs
- HttpListenerPrefixCollection.cs
- HitTestParameters.cs
- ParameterCollection.cs
- OpCodes.cs
- CompositeControl.cs
- AutoGeneratedFieldProperties.cs
- InternalPermissions.cs
- WindowsRichEdit.cs
- WebColorConverter.cs
- SslStream.cs
- CloudCollection.cs
- HttpResponse.cs
- PopupControlService.cs
- TextFormatterContext.cs
- ToolStripDropDownMenu.cs
- ControlParser.cs
- EventListener.cs
- ConfigXmlWhitespace.cs
- DataRowExtensions.cs
- ProjectionAnalyzer.cs
- PagerSettings.cs
- ColumnMapProcessor.cs
- SchemaImporter.cs
- NativeMethods.cs
- SqlTriggerAttribute.cs
- Positioning.cs
- XsdValidatingReader.cs
- RIPEMD160Managed.cs
- UnsafeNativeMethods.cs
- XamlGridLengthSerializer.cs
- NumericPagerField.cs
- ExtensionCollection.cs
- DocumentScope.cs
- XmlResolver.cs
- Dictionary.cs
- CachedPathData.cs
- EntityDesignerUtils.cs
- TreeBuilderBamlTranslator.cs
- DesignerTextViewAdapter.cs
- CompositionTarget.cs
- ReaderWriterLockWrapper.cs
- ClientWindowsAuthenticationMembershipProvider.cs
- ListView.cs
- UrlMappingCollection.cs
- AssemblyResourceLoader.cs
- ColumnWidthChangedEvent.cs
- TextServicesLoader.cs
- UserControl.cs
- ProgressBarBrushConverter.cs
- HScrollProperties.cs
- GeometryDrawing.cs
- RC2CryptoServiceProvider.cs
- CopyOfAction.cs
- CompositeCollectionView.cs
- StringExpressionSet.cs
- AppModelKnownContentFactory.cs
- HtmlInputImage.cs
- IdnElement.cs
- EncodingFallbackAwareXmlTextWriter.cs
- ResXResourceSet.cs
- XNodeValidator.cs
- HttpHandlersSection.cs
- WorkflowDesigner.cs
- ValidationErrorEventArgs.cs
- GlyphsSerializer.cs
- KnownAssemblyEntry.cs
- LightweightCodeGenerator.cs
- TreeViewItemAutomationPeer.cs
- Scripts.cs