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
- filewebresponse.cs
- TrustManager.cs
- SafeThemeHandle.cs
- OleDbError.cs
- GenericUriParser.cs
- XmlSchemaElement.cs
- PointLightBase.cs
- FollowerQueueCreator.cs
- EmptyControlCollection.cs
- ScrollContentPresenter.cs
- ReachSerializer.cs
- PassportIdentity.cs
- WindowsSolidBrush.cs
- ChannelManager.cs
- SByteConverter.cs
- TimeoutException.cs
- UpdateEventArgs.cs
- COM2EnumConverter.cs
- PixelShader.cs
- SmtpTransport.cs
- RegexCharClass.cs
- ActivityInterfaces.cs
- HotSpotCollection.cs
- UIPermission.cs
- DebugHandleTracker.cs
- ConfigurationLocationCollection.cs
- TlsSspiNegotiation.cs
- DataServices.cs
- Vector3DAnimationBase.cs
- X509ChainPolicy.cs
- MetadataSource.cs
- ControlCachePolicy.cs
- URI.cs
- AutomationPattern.cs
- Task.cs
- Typography.cs
- ThreadExceptionDialog.cs
- PackageStore.cs
- ObjectQuery_EntitySqlExtensions.cs
- HitTestFilterBehavior.cs
- ChangeDirector.cs
- InsufficientExecutionStackException.cs
- X509Certificate2.cs
- ClientSection.cs
- SmtpFailedRecipientsException.cs
- Number.cs
- VSDExceptions.cs
- ADMembershipUser.cs
- HGlobalSafeHandle.cs
- ContextMenuStrip.cs
- BStrWrapper.cs
- ToolStripContainerDesigner.cs
- LinkConverter.cs
- DetailsViewUpdatedEventArgs.cs
- httpserverutility.cs
- TripleDESCryptoServiceProvider.cs
- DesignerHost.cs
- TextAction.cs
- ReadOnlyDataSource.cs
- MediaEntryAttribute.cs
- ParenthesizePropertyNameAttribute.cs
- InvalidPropValue.cs
- Pkcs9Attribute.cs
- InputDevice.cs
- securitymgrsite.cs
- Scene3D.cs
- PersonalizationStateQuery.cs
- SizeIndependentAnimationStorage.cs
- OleDbDataAdapter.cs
- Transform3DGroup.cs
- WebPartConnectionsCancelEventArgs.cs
- StringUtil.cs
- DataPointer.cs
- ItemsChangedEventArgs.cs
- FileLogRecordStream.cs
- RuntimeResourceSet.cs
- WebSysDescriptionAttribute.cs
- ToolStripDropDownClosingEventArgs.cs
- SchemaElementDecl.cs
- MatrixTransform.cs
- SystemIPGlobalStatistics.cs
- SmiEventSink_Default.cs
- TypeReference.cs
- SequenceDesigner.cs
- Setter.cs
- ClientConvert.cs
- SafeEventLogReadHandle.cs
- XMLSchema.cs
- DaylightTime.cs
- CustomUserNameSecurityTokenAuthenticator.cs
- UnsafeNativeMethods.cs
- XamlSerializerUtil.cs
- FontDialog.cs
- xml.cs
- DataBinder.cs
- SecurityAlgorithmSuite.cs
- LineProperties.cs
- ContactManager.cs
- PngBitmapDecoder.cs
- HttpFileCollection.cs