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
- HMACSHA1.cs
- CommonServiceBehaviorElement.cs
- M3DUtil.cs
- CodeTypeMemberCollection.cs
- DateTimeValueSerializerContext.cs
- _FtpDataStream.cs
- CompilationRelaxations.cs
- ResourcePermissionBaseEntry.cs
- ArraySet.cs
- EntityModelSchemaGenerator.cs
- DataGridColumnCollection.cs
- ObjectStorage.cs
- ExtensionDataReader.cs
- EventLogPermissionAttribute.cs
- RegexCaptureCollection.cs
- unitconverter.cs
- Fault.cs
- ComPlusDiagnosticTraceRecords.cs
- Signature.cs
- ToolboxItemCollection.cs
- OleDbRowUpdatedEvent.cs
- PropertyGridCommands.cs
- LayoutEvent.cs
- UIntPtr.cs
- HtmlUtf8RawTextWriter.cs
- XmlMapping.cs
- OrderByQueryOptionExpression.cs
- ColorDialog.cs
- KerberosTicketHashIdentifierClause.cs
- ResourcePermissionBase.cs
- StyleTypedPropertyAttribute.cs
- ToolStripControlHost.cs
- PeerPresenceInfo.cs
- HttpWriter.cs
- ViewPort3D.cs
- PersonalizationStateInfoCollection.cs
- RunInstallerAttribute.cs
- UInt32.cs
- XsltArgumentList.cs
- SessionEndingEventArgs.cs
- indexingfiltermarshaler.cs
- DataGrid.cs
- ChoiceConverter.cs
- CheckBoxList.cs
- DataTableCollection.cs
- DbConnectionStringCommon.cs
- SymbolEqualComparer.cs
- SingleResultAttribute.cs
- WindowsGraphicsCacheManager.cs
- SizeAnimationUsingKeyFrames.cs
- EFTableProvider.cs
- ToolboxControl.cs
- Converter.cs
- SQLGuid.cs
- Monitor.cs
- complextypematerializer.cs
- DesignerMetadata.cs
- DbDataReader.cs
- controlskin.cs
- ProtocolsConfigurationEntry.cs
- TreeViewCancelEvent.cs
- BrowserCapabilitiesCompiler.cs
- DebugView.cs
- Stack.cs
- DelegateSerializationHolder.cs
- CopyAttributesAction.cs
- SocketPermission.cs
- WS2007HttpBindingElement.cs
- ResourceDescriptionAttribute.cs
- TimersDescriptionAttribute.cs
- GreaterThanOrEqual.cs
- XhtmlBasicSelectionListAdapter.cs
- DataServiceConfiguration.cs
- AdornerDecorator.cs
- RequestQueryParser.cs
- SafeRightsManagementHandle.cs
- ServicePrincipalNameElement.cs
- XmlSchemaSimpleTypeRestriction.cs
- CannotUnloadAppDomainException.cs
- PointKeyFrameCollection.cs
- ErrorFormatter.cs
- TaskDesigner.cs
- CodeMemberProperty.cs
- LinearKeyFrames.cs
- ReturnValue.cs
- ClickablePoint.cs
- BindingExpressionUncommonField.cs
- MediaTimeline.cs
- TextStore.cs
- XmlReader.cs
- DSGeneratorProblem.cs
- ReadOnlyDataSourceView.cs
- UserControlBuildProvider.cs
- DayRenderEvent.cs
- BridgeDataReader.cs
- InfoCardRSAPKCS1SignatureFormatter.cs
- ClockGroup.cs
- ToolStripDropDownItemDesigner.cs
- XmlReflectionImporter.cs
- IsolatedStorageFile.cs