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
- Positioning.cs
- SettingsPropertyIsReadOnlyException.cs
- ToolStripControlHost.cs
- ListViewCommandEventArgs.cs
- CompatibleComparer.cs
- XmlDataCollection.cs
- SQLMembershipProvider.cs
- WebDisplayNameAttribute.cs
- PermissionSetEnumerator.cs
- SetIndexBinder.cs
- SafeUserTokenHandle.cs
- ProcessModuleCollection.cs
- XsltConvert.cs
- Logging.cs
- BrowserCapabilitiesFactory.cs
- HtmlShimManager.cs
- DictionaryGlobals.cs
- HtmlLabelAdapter.cs
- WorkflowMarkupSerializationProvider.cs
- WebPartDescription.cs
- BoundColumn.cs
- ControlParameter.cs
- AssociationTypeEmitter.cs
- XmlChildEnumerator.cs
- FixedLineResult.cs
- Rect3D.cs
- StateWorkerRequest.cs
- IncrementalCompileAnalyzer.cs
- VoiceSynthesis.cs
- GridItemCollection.cs
- CheckPair.cs
- SeparatorAutomationPeer.cs
- VisualTarget.cs
- ASCIIEncoding.cs
- BindingsCollection.cs
- DataReaderContainer.cs
- OverlappedAsyncResult.cs
- RegularExpressionValidator.cs
- DocumentGrid.cs
- VectorCollection.cs
- SystemBrushes.cs
- __Error.cs
- BounceEase.cs
- TreeView.cs
- GestureRecognitionResult.cs
- Inline.cs
- Operand.cs
- EntityParameter.cs
- InputQueueChannel.cs
- AutoCompleteStringCollection.cs
- OptimizedTemplateContent.cs
- MsmqActivation.cs
- TraceFilter.cs
- AsyncOperation.cs
- PeerInvitationResponse.cs
- GenericTypeParameterBuilder.cs
- X509InitiatorCertificateServiceElement.cs
- ExpressionBuilder.cs
- FormsAuthenticationUserCollection.cs
- SecUtil.cs
- DataGridViewColumn.cs
- HuffModule.cs
- NGCSerializerAsync.cs
- LongAverageAggregationOperator.cs
- GroupDescription.cs
- SqlVersion.cs
- SecurityResources.cs
- PropertyTabAttribute.cs
- ImplicitInputBrush.cs
- InvalidAsynchronousStateException.cs
- MulticastIPAddressInformationCollection.cs
- Clock.cs
- AdornerLayer.cs
- ParserOptions.cs
- ThaiBuddhistCalendar.cs
- PasswordDeriveBytes.cs
- Dispatcher.cs
- ResourceCategoryAttribute.cs
- ItemCollection.cs
- MyContact.cs
- ProxyGenerationError.cs
- UnmanagedMemoryStreamWrapper.cs
- DataKey.cs
- TriggerActionCollection.cs
- ConstantSlot.cs
- Update.cs
- WindowsSolidBrush.cs
- DbMetaDataCollectionNames.cs
- __ComObject.cs
- DataBinder.cs
- SymLanguageVendor.cs
- AssemblyFilter.cs
- Predicate.cs
- SamlNameIdentifierClaimResource.cs
- ParserContext.cs
- Drawing.cs
- PropertyMappingExceptionEventArgs.cs
- mediaeventargs.cs
- XmlSchemaParticle.cs
- sqlmetadatafactory.cs