Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Framework / MS / Internal / Utility / TraceLog.cs / 1305600 / 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
- DuplexChannel.cs
- ListViewVirtualItemsSelectionRangeChangedEvent.cs
- CreateInstanceBinder.cs
- EntityDataSourceContainerNameItem.cs
- XmlSignificantWhitespace.cs
- ComboBoxItem.cs
- RtfToken.cs
- FormatException.cs
- SequenceNumber.cs
- FrameworkContextData.cs
- SqlConnectionFactory.cs
- OracleFactory.cs
- FontSizeConverter.cs
- HealthMonitoringSectionHelper.cs
- UserControlBuildProvider.cs
- KeysConverter.cs
- DataGridViewSelectedRowCollection.cs
- TextElement.cs
- invalidudtexception.cs
- ModelItemKeyValuePair.cs
- LogSwitch.cs
- DataBoundControlHelper.cs
- SemanticAnalyzer.cs
- WindowsFormsSectionHandler.cs
- PcmConverter.cs
- OneOfScalarConst.cs
- ListParagraph.cs
- WebResourceUtil.cs
- TriState.cs
- PartialCachingControl.cs
- BuildResult.cs
- ObjectPersistData.cs
- BitmapEffectDrawingContextWalker.cs
- ObjectDataSourceWizardForm.cs
- DocumentViewerConstants.cs
- SessionIDManager.cs
- RtfControlWordInfo.cs
- ToolStripItemTextRenderEventArgs.cs
- Claim.cs
- HelloOperation11AsyncResult.cs
- DataContext.cs
- WorkflowPersistenceContext.cs
- BufferBuilder.cs
- AssemblyBuilder.cs
- ISAPIApplicationHost.cs
- sqlcontext.cs
- EventHandlerService.cs
- AuthorizationRule.cs
- BookmarkUndoUnit.cs
- DelegateBodyWriter.cs
- TTSEngineTypes.cs
- Calendar.cs
- TreeNodeEventArgs.cs
- LocalizableResourceBuilder.cs
- PlatformNotSupportedException.cs
- glyphs.cs
- ObservableCollectionDefaultValueFactory.cs
- RectAnimationBase.cs
- Point3DAnimation.cs
- X509SecurityToken.cs
- WeakReference.cs
- LicenseException.cs
- TraceHandlerErrorFormatter.cs
- ConfigurationStrings.cs
- FixedLineResult.cs
- WebPartTracker.cs
- webclient.cs
- _FtpDataStream.cs
- XmlSchemaIdentityConstraint.cs
- HierarchicalDataBoundControl.cs
- Exception.cs
- TraceSection.cs
- RoleGroup.cs
- PageOrientation.cs
- HttpResponseHeader.cs
- StagingAreaInputItem.cs
- ComponentSerializationService.cs
- LinqDataSourceContextData.cs
- LabelLiteral.cs
- TimelineGroup.cs
- BinaryWriter.cs
- PhysicalAddress.cs
- CheckBox.cs
- Directory.cs
- Separator.cs
- TextServicesHost.cs
- DesignerDataConnection.cs
- WindowsGrip.cs
- ObjectIDGenerator.cs
- TextDecoration.cs
- ObservableCollection.cs
- PnrpPeerResolverElement.cs
- TemplateXamlParser.cs
- ControlIdConverter.cs
- SystemWebExtensionsSectionGroup.cs
- ManagedFilter.cs
- SamlSecurityToken.cs
- ManagedIStream.cs
- TextBoxBase.cs
- MobileRedirect.cs