Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / 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
- SessionStateUtil.cs
- CommonDialog.cs
- TypeUtil.cs
- SmiTypedGetterSetter.cs
- TreeNodeClickEventArgs.cs
- SqlCacheDependencyDatabase.cs
- SqlCacheDependencyDatabaseCollection.cs
- LogRestartAreaEnumerator.cs
- StorageEntityTypeMapping.cs
- HttpCachePolicyWrapper.cs
- TextEffect.cs
- ModifyActivitiesPropertyDescriptor.cs
- SerialStream.cs
- SafeEventLogWriteHandle.cs
- DeclaredTypeElementCollection.cs
- TextBoxBase.cs
- BitVec.cs
- SetIterators.cs
- ConnectionPoolRegistry.cs
- RawTextInputReport.cs
- ComponentRenameEvent.cs
- UIElementPropertyUndoUnit.cs
- DataGridViewRowsRemovedEventArgs.cs
- BezierSegment.cs
- BookmarkList.cs
- SettingsAttributes.cs
- InProcStateClientManager.cs
- PropertiesTab.cs
- ThreadAbortException.cs
- TypographyProperties.cs
- MimePart.cs
- Pkcs9Attribute.cs
- ReadOnlyDataSource.cs
- WorkerRequest.cs
- ImageFormat.cs
- ReachIDocumentPaginatorSerializer.cs
- DocumentViewerBaseAutomationPeer.cs
- SequenceRangeCollection.cs
- DiscoveryMessageProperty.cs
- FullTrustAssembly.cs
- HtmlToClrEventProxy.cs
- WebPartMinimizeVerb.cs
- DataGridTableCollection.cs
- TagPrefixAttribute.cs
- ObjectQueryState.cs
- PersonalizablePropertyEntry.cs
- BCryptNative.cs
- SQLGuid.cs
- FlagsAttribute.cs
- HttpResponse.cs
- CopyNamespacesAction.cs
- CodeEventReferenceExpression.cs
- StructureChangedEventArgs.cs
- IdnMapping.cs
- ResourceReferenceExpression.cs
- PopupEventArgs.cs
- DataListComponentEditor.cs
- GPPOINT.cs
- DataControlFieldHeaderCell.cs
- WindowsFormsLinkLabel.cs
- DbParameterCollectionHelper.cs
- DataBindingExpressionBuilder.cs
- InstanceDataCollection.cs
- SystemTcpStatistics.cs
- SafeCertificateStore.cs
- SocketInformation.cs
- TranslateTransform3D.cs
- PathFigureCollectionConverter.cs
- _LocalDataStoreMgr.cs
- DocumentViewerBaseAutomationPeer.cs
- ScriptModule.cs
- CalendarDay.cs
- CollectionChangedEventManager.cs
- IndexedString.cs
- DependencyObjectType.cs
- StringInfo.cs
- ScriptRef.cs
- AnimationException.cs
- IArgumentProvider.cs
- WebSysDescriptionAttribute.cs
- RequestCachePolicy.cs
- RepeaterItemEventArgs.cs
- ChannelServices.cs
- FormViewActionList.cs
- XmlDataImplementation.cs
- SqlClientPermission.cs
- IOThreadScheduler.cs
- MethodAccessException.cs
- ParameterSubsegment.cs
- ContourSegment.cs
- Lookup.cs
- OpacityConverter.cs
- SqlConnectionStringBuilder.cs
- DataServiceQuery.cs
- ExtensibleClassFactory.cs
- XmlSchemaSimpleTypeRestriction.cs
- EndpointConfigContainer.cs
- ComAwareEventInfo.cs
- RadioButton.cs
- XmlSchemaSimpleContentRestriction.cs