Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- Attributes.cs
- QueryExpr.cs
- BuildProviderAppliesToAttribute.cs
- CodeMethodInvokeExpression.cs
- NameSpaceExtractor.cs
- SqlXml.cs
- OfTypeExpression.cs
- HtmlUtf8RawTextWriter.cs
- QilNode.cs
- GraphicsState.cs
- Message.cs
- DataListCommandEventArgs.cs
- UnsafeNativeMethods.cs
- ManagementClass.cs
- SafeHandle.cs
- OleDbMetaDataFactory.cs
- Literal.cs
- Vector3D.cs
- DataSourceSelectArguments.cs
- GridViewUpdatedEventArgs.cs
- QueryModel.cs
- BaseTemplateParser.cs
- ContentDisposition.cs
- BridgeDataReader.cs
- OlePropertyStructs.cs
- NavigationExpr.cs
- Glyph.cs
- RelationshipEnd.cs
- TextEffectResolver.cs
- LogicalTreeHelper.cs
- followingsibling.cs
- ProfileParameter.cs
- Overlapped.cs
- FieldBuilder.cs
- CodeMethodReturnStatement.cs
- ObjectMemberMapping.cs
- XmlProcessingInstruction.cs
- HtmlLinkAdapter.cs
- ConfigPathUtility.cs
- SqlDataSourceParameterParser.cs
- AbstractExpressions.cs
- SyntaxCheck.cs
- ReceiveCompletedEventArgs.cs
- SoapSchemaExporter.cs
- PerformanceCounters.cs
- TraversalRequest.cs
- User.cs
- ScrollItemProviderWrapper.cs
- WebEventTraceProvider.cs
- XmlSchemaSequence.cs
- IssuanceTokenProviderBase.cs
- StatusBarItem.cs
- PassportAuthentication.cs
- FileResponseElement.cs
- Evidence.cs
- DataGridViewAutoSizeColumnsModeEventArgs.cs
- Table.cs
- RectAnimationUsingKeyFrames.cs
- TextContainer.cs
- ResXDataNode.cs
- ProtocolViolationException.cs
- SessionPageStatePersister.cs
- DateTimeParse.cs
- input.cs
- EngineSite.cs
- NativeMethods.cs
- ColorAnimationBase.cs
- ExpandedProjectionNode.cs
- AppSettingsExpressionBuilder.cs
- TraceHwndHost.cs
- SmiContextFactory.cs
- ApplicationFileCodeDomTreeGenerator.cs
- PermissionListSet.cs
- IMembershipProvider.cs
- LinkedResource.cs
- SafeUserTokenHandle.cs
- CodeValidator.cs
- DbDataReader.cs
- GB18030Encoding.cs
- XmlHierarchyData.cs
- SerializationSectionGroup.cs
- UserPreferenceChangingEventArgs.cs
- UnmanagedMarshal.cs
- Lease.cs
- DeobfuscatingStream.cs
- CurrentChangingEventManager.cs
- FixedSOMFixedBlock.cs
- ArraySubsetEnumerator.cs
- EncoderReplacementFallback.cs
- Calendar.cs
- KeyGestureValueSerializer.cs
- TableAdapterManagerMethodGenerator.cs
- KernelTypeValidation.cs
- BlockingCollection.cs
- Speller.cs
- TextElementEnumerator.cs
- BitmapSource.cs
- DataGridColumnHeaderAutomationPeer.cs
- IfJoinedCondition.cs
- ObjectConverter.cs