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
- ServiceControllerDesigner.cs
- XmlSerializer.cs
- DataSetMappper.cs
- DetailsViewCommandEventArgs.cs
- ProtocolsConfigurationEntry.cs
- PropertyFilterAttribute.cs
- DbDataRecord.cs
- GenericTypeParameterBuilder.cs
- WebServiceAttribute.cs
- EventListener.cs
- DigitShape.cs
- StrongNameIdentityPermission.cs
- Size3DValueSerializer.cs
- PersistenceProviderDirectory.cs
- WindowsTokenRoleProvider.cs
- OperationFormatter.cs
- DataGridViewButtonCell.cs
- ArgumentException.cs
- XmlBindingWorker.cs
- relpropertyhelper.cs
- DocumentSequence.cs
- TemplateEditingFrame.cs
- DataSourceCacheDurationConverter.cs
- Base64WriteStateInfo.cs
- FontWeights.cs
- ZipIOLocalFileBlock.cs
- DataObjectEventArgs.cs
- DocumentPageView.cs
- EDesignUtil.cs
- ExpandSegment.cs
- NoClickablePointException.cs
- BindingGraph.cs
- categoryentry.cs
- HttpPostedFile.cs
- OleDbRowUpdatedEvent.cs
- URIFormatException.cs
- DataGridViewRowErrorTextNeededEventArgs.cs
- FormatterConverter.cs
- ImageConverter.cs
- ReflectionTypeLoadException.cs
- CorePropertiesFilter.cs
- InvokeMethodDesigner.xaml.cs
- SurrogateEncoder.cs
- XpsFixedDocumentSequenceReaderWriter.cs
- Validator.cs
- RemoteWebConfigurationHostServer.cs
- formatter.cs
- Quad.cs
- MessageTraceRecord.cs
- PropertyChangedEventManager.cs
- StateMachine.cs
- Utils.cs
- AsyncParams.cs
- LabelEditEvent.cs
- CodeIdentifier.cs
- PersonalizationState.cs
- BufferBuilder.cs
- HttpServerProtocol.cs
- HotCommands.cs
- Span.cs
- DropDownList.cs
- FastEncoderWindow.cs
- IdSpace.cs
- XmlCodeExporter.cs
- GrammarBuilderBase.cs
- ItemsPresenter.cs
- MaterialGroup.cs
- ReceiveContent.cs
- UnhandledExceptionEventArgs.cs
- EntityCommandExecutionException.cs
- DateTimeOffsetAdapter.cs
- SupportsEventValidationAttribute.cs
- WebBaseEventKeyComparer.cs
- XPathNodeList.cs
- EmptyEnumerator.cs
- CatalogPartCollection.cs
- SecureUICommand.cs
- GridViewDeletedEventArgs.cs
- ActivityIdHeader.cs
- DocumentPageTextView.cs
- GroupDescription.cs
- WebMessageBodyStyleHelper.cs
- Bezier.cs
- PageHandlerFactory.cs
- PointLight.cs
- HttpHeaderCollection.cs
- EdmItemCollection.cs
- WebBrowserNavigatingEventHandler.cs
- DoubleLink.cs
- UniqueConstraint.cs
- NativeMethods.cs
- EventNotify.cs
- HyperLink.cs
- DependencyObjectCodeDomSerializer.cs
- Encoder.cs
- MetadataFile.cs
- CoTaskMemHandle.cs
- WizardForm.cs
- ReadOnlyDataSourceView.cs
- EventLogEntryCollection.cs