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
- AxHost.cs
- LocalizeDesigner.cs
- NonParentingControl.cs
- InlineObject.cs
- DefaultClaimSet.cs
- SqlConnection.cs
- HttpCapabilitiesEvaluator.cs
- SHA512Managed.cs
- PageCodeDomTreeGenerator.cs
- CommandLibraryHelper.cs
- DbParameterCollectionHelper.cs
- ProfileSettingsCollection.cs
- PropertyStore.cs
- ManagementObjectSearcher.cs
- DotExpr.cs
- MenuItemBindingCollection.cs
- OdbcParameter.cs
- Condition.cs
- StateItem.cs
- InvalidPrinterException.cs
- XmlDataSourceNodeDescriptor.cs
- OLEDB_Enum.cs
- StorageTypeMapping.cs
- WindowsButton.cs
- ZoneButton.cs
- input.cs
- ViewBox.cs
- RoleGroupCollection.cs
- AdornerHitTestResult.cs
- ACL.cs
- ErrorStyle.cs
- PointAnimation.cs
- QuaternionKeyFrameCollection.cs
- SqlCrossApplyToCrossJoin.cs
- DockProviderWrapper.cs
- CultureSpecificStringDictionary.cs
- PointCollectionConverter.cs
- EncodingDataItem.cs
- CompositeFontParser.cs
- WebConfigManager.cs
- WebSysDisplayNameAttribute.cs
- Brush.cs
- Exception.cs
- DataTableReaderListener.cs
- PagerSettings.cs
- HwndTarget.cs
- Utils.cs
- DataGridViewCellCancelEventArgs.cs
- MetadataHelper.cs
- KeyEventArgs.cs
- Crc32.cs
- HotSpot.cs
- DataChangedEventManager.cs
- Scalars.cs
- Route.cs
- QilNode.cs
- ScriptingRoleServiceSection.cs
- OdbcEnvironment.cs
- XPathDocumentIterator.cs
- Point3DValueSerializer.cs
- ProjectionCamera.cs
- InProcStateClientManager.cs
- NonDualMessageSecurityOverHttpElement.cs
- ReadOnlyCollectionBuilder.cs
- DirtyTextRange.cs
- DragEvent.cs
- MemberInitExpression.cs
- DataContractSerializerFaultFormatter.cs
- DataListDesigner.cs
- HttpModuleAction.cs
- sqlinternaltransaction.cs
- XmlCompatibilityReader.cs
- OptionalColumn.cs
- SimpleApplicationHost.cs
- Rijndael.cs
- SourceItem.cs
- FaultFormatter.cs
- NumberAction.cs
- HwndHostAutomationPeer.cs
- SqlParameterizer.cs
- ExpandedProjectionNode.cs
- DataGridColumnReorderingEventArgs.cs
- OptimalTextSource.cs
- TransactionFlowElement.cs
- sqlcontext.cs
- DbInsertCommandTree.cs
- XmlAggregates.cs
- PartitionerStatic.cs
- DbTransaction.cs
- ValidationException.cs
- IHttpResponseInternal.cs
- TypeConverter.cs
- ActivatableWorkflowsQueryResult.cs
- ProcessHostMapPath.cs
- path.cs
- DataGridItemEventArgs.cs
- DataListItemEventArgs.cs
- DeflateStream.cs
- DataSourceXmlElementAttribute.cs
- SkinBuilder.cs