acbbb9a032c1b134f743214f2520c7b64dc30d34
[mono.git] / mcs / class / System / System.Diagnostics / ChangeLog
1 2005-09-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2
3         * Process.cs: deal with the fact that someone can enable raising events
4         and/or registed a Exited delegate before and *after* Start is called for
5         the process. Only queue the exit callback in the threadpool when it's
6         possible and requested. Fixes bug #76129.
7
8 2005-08-09  Gert Driesen <drieseng@users.sourceforge.net>
9
10         * EventLog.cs: Fixed Designer attribute to match MS.NET.
11         * ICollectData.cs: Added marshalling attribute to match MS.NET.
12         * PerformanceCounter.cs: Fixed Designer attribute to match MS.NET.
13         * Process.cs: Fixed Designer attribute to match MS.NET, modified
14         * ProcessModule.cs: Fixed Designer attribute to match MS.NET.
15         * ProcessThread.cs: Fixed Designer attribute to match MS.NET.
16         DesignerSerializationVisibility on StartInfo to match MS.NET, changed
17         Category attribute on Exited event to match MS.NET.
18
19 2005-06-09  Gert Driesen <drieseng@users.sourceforge.net>
20
21         * TraceImpl.cs: Adjust internal indentlevel and indentsize before 
22         passing on to listeners. Fixes some test failures.
23
24 2005-06-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
25
26         * DefaultTraceListener.cs: s/MONO_TRACE/MONO_TRACE_LISTENER/. The
27         runtime uses MONO_TRACE too...
28
29 2005-05-31  Sebastien Pouliot  <sebastien@ximian.com>
30
31         * PerformanceCounterPermissionEntry.cs: Added more 2.0 validations for
32         machine names and PerformanceCounterPermissionAccess.
33
34 2005-02-22 Jonathan Pryor  <jonpryor@vt.edu>
35
36         * TraceImpl.cs: More Thread-safety fixes.  I have to lock on
37           Listeners.SyncRoot as we're traversing the collection and can't let the
38           collection change from underneath us while we're iterating over it
39           (alternately, we could clone the collection and iterate over the clone
40           without having locking issues -- assuming we had a lock-free clone -- 
41           but this would kill the GC).  Fixes 69964.  Only define lock_ if we're 
42           using the lock-free initialization routine; it's not used otherwise.
43
44 2005-01-18 Jonathan Pryor  <jonpryor@vt.edu>
45
46         * DiagnosticsConfigurationHandler.cs (DiagnosticsConfiguration): 
47           Use a lock-free algorithm for creating the settings information.
48         * TraceImpl.cs (InitOnce): Use a lock-free algorithm for creating the
49           listeners collection and initializing the world.
50
51 2005-01-18 Jonathan Pryor  <jonpryor@vt.edu>
52
53         * DiagnosticsConfigurationHandler.cs (DiagnosticsConfiguration): Don't 
54           read the .config file from the static ctor (again), as if it fails we'll 
55           get a TypeLoadException -- bad!  Instead, lazy-read the .config file.
56         * DiagnosticsConfigurationHandler.cs (DiagnosticsConfigurationHandler): 
57           Require that the /switch/add/@value attribute contains only numeric values.
58         * TraceImpl.cs: Don't initialize everything in the static ctor, as if it
59           fails (due to an invalid .confg file) we get a TypeLoadException, while
60           .NET generates a ConfigurationException.  Instead, initialize everything
61           the first time the Listeners property is accessed, which allows the static
62           ctor to run without chance of failure, avoiding the TypeLoadException.
63         * TraceListenerCollection.cs: This should be thread-safe, as it's accessible
64           from a static member of TraceImpl (available through the public Debug and 
65           Trace classes).
66         * Switch.cs: Leave the original switch value alone.  If it isn't valid 
67           (i.e. numeric), the DiagnosticsConfigurationHandler will catch it.
68
69 2005-01-17 Jonathan Pryor  <jonpryor@vt.edu>
70
71         * DiagnosticsConfigurationHandler.cs: The /switch/add/@value attribute 
72           isn't optional under .NET 1.1, so make sure it exists.
73
74 2005-01-13 Jonathan Pryor  <jonpryor@vt.edu>
75
76         * DiagnosticsConfigurationHandler.cs: Make DiagnosticsConfiguration.Settings
77           thread-safe (double-checked locking isn't thread safe on .NET without
78           using a volatile variable, and setting the variable in the static
79           constructor is easier anyway).
80         * Switch.cs (GetConfigFileSetting): If the setting is non-numeric, set the
81           attribute value to the string "0".  This is apparently what .NET 1.1 does,
82           and allows the SwitchTest NUnit test to work w/o failures.
83
84 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
85
86         * Process.cs: always pass the same arguments to the runtime.
87
88 2004-09-11  Sebastien Pouliot  <sebastien@ximian.com>
89
90         * EventLogPermission.cs: Completed implementation.
91         * EventLogPermissionAccess.cs: Fixed enum values.
92         * EventLogPermissionEntry.cs: Added validation for machine names.
93         * EventLogPermissionEntryCollection.cs: Added synchronization
94         of entries with the base permission class.
95         * PerformanceCounterPermission.cs: Completed implementation.
96         * PerformanceCounterPermissionAccess.cs: Fixed enum values.
97         * PerformanceCounterPermissionEntry.cs: Added validations for machine
98         and category names.
99         * PerformanceCounterPermissionEntryCollection.cs: Added synchronization
100         of entries with the base permission class.
101
102 2004-09-10  Sebastien Pouliot  <sebastien@ximian.com>
103
104         * EventLogPermission.cs: Fixed initialization (TagNames and
105         PermissionAccessType).
106         * EventLogPermissionAccess.cs: Added new enums for NET_2_0 and added 
107         [Obsolete] to some existing elements.
108         * EventLogPermissionAttribute.cs: Added missing validation to property
109         MachineName. Fixed changes for NET_2_0.
110         * PerformanceCounterPermission.cs: Fixed initialization (TagNames and
111         PermissionAccessType).
112         * PerformanceCounterPermissionAccess.cs: Added new enums for NET_2_0
113         and added [Obsolete] to some existing elements.
114         * PerformanceCounterPermissionAttribute.cs: Added missing validations
115         to properties (Path, MachineName). Fixed changes for NET_2_0.
116
117 2004-09-07  Dick Porter  <dick@ximian.com>
118
119         * Process.cs: Throw documented exceptions when getting stdin,
120         stdout or stderr and they haven't been redirected.  Check that
121         CreatePipe didn't fail, throw exceptions if it did.  Close
122         redirected streams when the process is disposed, rather than rely
123         on the GC disposing them later.  Makes timeline much happier,
124         because it could run out of file descriptors between GC
125         collections.
126
127 2004-09-06  Dick Porter  <dick@ximian.com>
128
129         * Process.cs: Make Dispose() actually dispose things.
130
131 2004-06-24  Atsushi Enomoto  <atsushi@ximian.com>
132
133         * Process.cs : quick fix for UseShellExecute=false on windows. See
134           the code comment.
135
136 2004-06-17  Lluis Sanchez Gual  <lluis@ximian.com>
137
138         * Process.cs: Added missing check in HasExited property.
139
140 2004-05-20  Gert Driesen (drieseng@users.sourceforge.net)
141
142         * EventLogPermissionAttribute.cs:
143         * PerformanceCounterPermissionAttribute.cs: adjust AllowMultiple
144         and Inherited to match .NET
145
146 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
147
148         * Process.cs: separate the command and the arguments when calling
149         Start_internal.
150
151 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
152
153         * Process.cs: redirecting I/O is not permitted if UseShellExecute is
154         true. Also throw if FileName is null.
155
156 2004-04-06  Lluis Sanchez Gual  <lluis@ximian.com>
157
158         * DiagnosticsConfigurationHandler.cs: If initializeData is provided,
159         use the constructor that only takes one string as parameter to
160         construct the listener. The name is set using the Name property, not the
161         constructor.
162         
163         * TextWriterTraceListener.cs: In Write*, do nothing if no writer was 
164         provided.
165
166 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
167
168         * Process.cs: use the ISynchronizeInvoke object to invoke the event.
169         Implemented Close, CloseMainWindow and Kill.
170
171 2004-03-23 Ben Maurer  <bmaurer@users.sourceforge.net>
172
173         * Switch.cs: Don't throw when there is no switches section.
174
175 2004-03-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
176
177         * Process.cs: support EnableRaisingEvents + Exited event.
178
179 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
180
181         * Process.cs: patch by Gert Driesen that fixes WaitForExit when the
182         timeout is int.MaxValue.
183
184 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
185
186         * Process.cs: added environment variables setting support and also
187         send useShellExecute to the runtime.
188
189         * ProcessStartInfo.cs: support EnvironmentVariables.  MS uses
190         StringDictionary, which turns keys into lowercase. We don't do that.
191
192 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
193
194         * Process.cs: ExitCode and ExitTime check that the process is finished.
195
196 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
197
198         * Process.cs: if there's an error when starting the process, the 'pid'
199         field contains the GetLastError code. Use that for the Win32Exception.
200
201 2003-12-06  Martin Baulig  <martin@ximian.com>
202
203         * DefaultTraceListener: Don't use `where' in variable names.
204
205 2003-11-13  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
206
207         * ICollectData.cs: Fixed signature
208
209 2003-11-12  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
210
211         * ICollectData.cs: Added missing attribute
212
213 2003-07-27  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
214
215         * SRDescriptionAttribute.cs: Moved to System directory
216
217 2003-07-21  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
218
219         * EventLog.cs: Implementation handling
220         * EventLogImpl.cs: Added, contains an platform independent empty implementation
221         for EventLog
222
223 2003-07-18  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
224
225         * AlphabeticalEnumConverter.cs: Added
226         * EventLogEntry.cs: Implemented
227         * EventLogPermissionEntryCollection.cs: Fixed signature and implementation of indexer
228         * EventLogTraceListener.cs: Fixed signature
229         * PerformanceCounter.cs: Added missing attribute
230         * PerformanceCounterType.cs: Added missing attribute
231         * SRDescriptionAttribute.cs: Added and implemented
232
233 2003-07-17  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
234
235         * CounterCreationData.cs:
236         * EventLog.cs:
237         * EventLogEntry.cs:
238         * PerformanceCounter.cs:
239         * Process.cs:
240         * ProcessModule.cs:
241         * ProcessStartInfo.cs:
242         * ProcessThread.cs: Reworked attributes based on the new Consts scheme
243
244 2003-07-14  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
245
246         * PerformanceCounterCategory.cs: Fixed signatures
247
248 2003-07-13  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
249
250         * PerformanceCounter.cs: Implemented or implementation added
251
252 2003-07-13  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
253
254         * DiagnosticsConfigurationHandler.cs: Removed a never used variable
255         * EventLog.cs: Small update to prevent a warning
256         * EventLogPermission.cs: Implemented or implementation added
257         * EventLogPermissionAttribute.cs: Implemented or implementation added
258         * EventLogPermissionEntry.cs: Implemented or implementation added
259         * EventLogPermissionEntryCollection.cs: Implemented or implementation added
260         * EventLogTraceListener.cs: Implemented or implementation added
261         * PerformanceCounterManager.cs: Implemented or implementation added
262         * PerformanceCounterInstaller.cs: Made internal
263         * PerformanceCounterCategory.cs: Implemented few members
264         * PerformanceCounterPermission.cs: Implemented or implementation added
265         * PerformanceCounterPermissionAttribute.cs: Implemented or implementation added
266         * PerformanceCounterPermissionEntry.cs: Implemented or implementation added
267         * PerformanceCounterPermissionEntryCollection.cs: Implemented or implementation added
268         
269 2003-07-07  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
270
271         * EventLog.cs: Removed unneccesary attribute according to corecompare
272         * EventLogEntry.cs: Removed unneccesary attribute according to corecompare
273         * Process.cs: Removed unneccesary attributes according to corecompare, added attribute
274         * ProcessModule.cs: Removed unneccesary attribute according to corecompare
275         * ProcessStartInfo.cs: Removed unneccesary attribute according to corecompare
276         * ProcessThread.cs: Removed unneccesary attribute according to corecompare, fixed signature
277
278 2003-07-05  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
279
280         * InstanceDataCollectionCollection.cs: Corrected wrong signature
281         * EventLog.cs: Missing attributes added, redirected some class members
282         * EventLogEntry.cs: Missing attributes added
283         * EventLogInstaller.cs: Made internal
284         
285 2003-07-02  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
286
287         * CounterCreationData.cs: Added missing attributes
288         * CounterSample.cs: Implemented missing rest, fixed signature
289         * CounterSampleCalculator.cs: Added private constructor, redirected function
290         * Process.cs: Added attributes, added event mechanism
291         * ProcessModule.cs: Added missing attributes
292         * ProcessModuleCollection.cs: Redone using the already inherited-from ArrayList. Simplifies this a LOT
293         * ProcessStartInfo.cs: Added missing attributes, moved internal fields to the begining of the file, restyling
294         * ProcessThread.cs: Added missing attributes, added pseudo constructor
295         * ProcessThreadCollection.cs: Implemented
296         * PerformanceCounterPermission.cs: Fixed typo in class name
297         * PerformanceCounterPermissionAccess.cs: Added attributes, fixed wrong member
298         
299 2003-03-19  Dick Porter  <dick@ximian.com>
300
301         * Process.cs: Implement HasExited, fixes bug 39267
302
303 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
304
305         * Process.cs: throw an exception when the executable cannot be found.
306
307 2002-12-20  Jonathan Pryor <jonpryor@vt.edu>
308         * DiagnosticsConfigurationHandler.cs: 
309           - Don't assume that optional attributes are always present
310           - <assert/> can't have any child nodes
311           - Change in semantics: if the attribute isn't present,
312             GetAttribute() returns null, not "".  This allows us to
313             differentiate between an attribute not being present and an
314             attribute with an empty value.
315           - Translate exceptions if a TraceListener type is invalid
316
317 2002-12-19  Jonathan Pryor <jonpryor@vt.edu>
318         * TraceListenerCollection.cs: IndentLevel and IndentSize shouldn't be 
319           hardcoded; they should be set to whatever TraceImpl is using (which
320           in turn may have been set by the .config file, so we should get the
321           user-specified values in added listeners).
322         * TraceListener.cs: Make sure that indents are initially written.  This 
323           allows code that uses Trace.Indent() before a Trace.WriteLine() to be 
324           indented properly.
325         * TraceImpl.cs: provide a static constructor to explicitly specify the
326           ordering of initialization, in particular the ordering of
327           TraceImpl.Listeners and the reading of the .config file (by
328           accessing DiagnosticsConfiguration.Settings).  This (hopefully)
329           ensures that the Listeners collection is initialized before the
330           .config file is read in, as the DiagnosticsConfigurationHandler will
331           directly modify the listeners collection.
332           The DiagnosticsConfigurationHandler assumes this so that it can
333           <add/> and <remove/> trace listeners and set the logfile for the
334           DefaultTraceListener.
335
336
337 2002-12-18  Jonathan Pryor <jonpryor@vt.edu>
338         * BooleanSwitch.cs: Complete re-write.  It works now.
339         * DefaultTraceListener.cs:
340           - Use `const' strings, so I don't worry about copy/paste errors
341           - Give `AssertUiEnabled' an actual backing member
342         * DiagnosticsConfigurationHandler.cs: To avoid race conditions, let the
343           configuration handler set .config-specified properties on
344           DefaultTraceListener (AssertUiEnabled, LogFileName) and TraceImpl
345           (AutoFlush, IndentSize).
346         * Switch.cs: Near complete re-write.  Actually works, and is (should be)
347           comformant with .NET behavior.  Changed member names because they
348           were confusing me.  (Yes, that doesn't say much about my memory.)
349         * TextWriterTraceListener.cs: Append text to already existing files,
350           don't overwrite them.
351         * TraceImpl.cs:
352           - Added private destructor, to ensure no instances are created.
353           - Move members declarations to be closer to each other.
354         * TraceSwitch.cs: Complete re-write.  It works now.
355
356 2002-12-17  Jonathan Pryor <jonpryor@vt.edu>
357         * DiagnosticsConfigurationHandler.cs: Implement so that .config files
358         support <system.diagnostics> sections.
359
360 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
361
362         * DefaultTraceListener.cs: now OutputDebugStringW is called from an
363         internal call (update your runtime!). No more warnings in linux.
364
365 2002-10-31  Dick Porter  <dick@ximian.com>
366
367         * Process.cs: MonoIO methods now have an error parameter
368
369 2002-10-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
370
371         * DefaultTraceListener.cs: changed OutputDebugString to
372         OutputDebugStringW (no more warnings under windows). Also a few style
373         fixes.
374
375 2002-10-23  Dick Porter  <dick@ximian.com>
376
377         * Process.cs: Redirected standard input needs to have AutoFlush set
378
379 2002-09-27  Dick Porter  <dick@ximian.com>
380
381         * Process.cs: Implemented {get_,set_}{Min,Max}WorkingSet,
382         ProcessName, GetProcessById, GetProcesses, GetProcessesByName.
383         Pass the working directory to Start.  Pass the program and args in
384         one string to be used with the second arg of CreateProcess, so it
385         will search the path.
386
387 2002-09-19  Nick Drochak <ndrochak@gol.com>
388
389         * TraceImpl.cs: Remove debug prints
390
391 2002-09-19  Nick Drochak <ndrochak@gol.com>
392
393         * TraceListenerCollection.cs: Set Indet level and size to default 
394         values.  The values from TraceImpl might have been changed.
395
396 2002-08-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
397
398         * Process.cs:
399         * TextWriterTraceListener.cs: IDisposable fixes.
400
401 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
402
403         * Process.cs: class status based fixes.
404
405 2002-07-20  Dick Porter  <dick@ximian.com>
406
407         * Process.cs: Implement file handle redirection
408
409 2002-07-13  Jonathan Pryor <jonpryor@vt.edu>
410         * CounterCreationData.cs: Implemented
411         * CounterCreationDataCollection.cs: Implemented
412         * CounterSample.cs: Stubbed Out
413         * CounterSampleCalculator.cs: Stubbed Out
414         * InstanceData.cs: Implemented
415         * InstanceDataCollection.cs: Implemented
416         * InstanceDataCollectionCollection.cs: Implemented
417         * MonitoringDescriptionAttribute.cs: Implemented
418         * PerformanceCounter.cs: Stubbed Out
419         * PerformanceCounterCategory.cs: Stubbed Out
420         * PerformanceCounterInstaller.cs: Stubbed Out
421         * PerformanceCounterManager.cs: Stubbed Out
422         * PerformanceCounterPermission.cs: Stubbed Out
423         * PerformanceCounterPermissionAccess.cs: Implemented
424         * PerformanceCounterPermissionAttribute.cs: Stubbed Out
425         * PerformanceCounterPermissionEntry.cs: Stubbed Out
426         * PerformanceCounterPermissionEntryCollection.cs: Implemented
427         * PerformanceCounterType.cs: Implemented
428
429
430 2002-06-25  Dick Porter  <dick@ximian.com>
431
432         * Process.cs: Process forking and waiting, and some support functions
433
434         * ProcessStartInfo.cs: Implemented the bits needed for basic
435         Process forking
436
437         * ProcessModule.cs: Implemented
438
439         * ProcessModuleCollection.cs: Mostly implemented
440
441         * FileVersionInfo.cs: Implemented
442
443 2002-06-16  Jonathan Pryor <jonpryor@vt.edu>
444         * ICollectData.cs: Implemented
445         * TraceImpl.cs: Setting IndentLevel, IndentSize should change the
446                 corresponding properties on all current TraceListeners.
447                 Also, to answer the FIXME message: Yes, the properties in TraceListener
448                 need to be [ThreadStatic] as well.
449         * TraceListenerCollection.cs: When adding a TraceListener, the TraceListener
450                 should have its properties set to the current TraceImpl property values.
451         * TraceListener.cs: Make indentSize, lndentLevel [ThreadStatic].
452
453 2002-06-09  Jonathan Pryor <jonpryor@vt.edu>
454         * EntryWrittenEventArgs.cs: Implemented
455         * EntryWrittenEventHandler.cs: Implemented
456         * EventLog.cs: Stubbed out
457         * EventLogEntry.cs: Stubbed out
458         * EventLogEntryCOllection.cs: Implemented.
459         * EventLogEntryType.cs: Implemented
460         * EventLogInstaller.cs: Stubbed out
461         * EventLogPermission.cs: Stubbed out
462         * EventLogPermissionAccess.cs: Implemented
463         * EventLogPermissionAttribute.cs: Stubbed out
464         * EventLogPermissionEntry.cs: Stubbed out
465         * EventLogPermissionEntryCollection.cs: Stubbed out
466         * EventLogTraceListener.cs: Stubbed out
467
468 2002-05-29  Jonathan Pryor <jonpryor@vt.edu>
469   * DefaultTraceListener.cs: Implemented MONO_TRACE support
470
471 2002-05-27  Jonathan Pryor <jonpryor@vt.edu>
472   * Moved public API documentation for the following files to the
473     /mcs/docs/apidocs/xml/en/System.Diagnostics directory:
474     - Debug.cs
475     - DefaultTraceListener.cs
476     - DiagnosticsConfigurationHandler.cs
477     - Switch.cs
478     - TextWriterTraceListener.cs
479     - Trace.cs
480     - TraceLevel.cs
481     - TraceListener.cs
482     - TraceListenerCollection.cs
483     - TraceSwitch.cs
484
485 2002-04-10  Jonathan Pryor <jonpryor@vt.edu>
486
487         * TraceListenerCollection.cs: Corrected indexer property to provide the
488                 correct return value and implement the IList indexer property correctly.
489
490 2002-04-07  Jonathan Pryor <jonpryor@vt.edu>
491
492         * TraceListener.cs: Fix stack overflow bug
493         * DefaultTraceListener.cs: Implement log file support
494
495 2002-04-04  Dick Porter  <dick@ximian.com>
496
497         * ThreadWaitReason.cs:
498         * ThreadState.cs:
499         * ThreadPriorityLevel.cs:
500         * ProcessWindowStyle.cs:
501         * ProcessThreadCollection.cs
502         * ProcessThread.cs:
503         * ProcessStartInfo.cs:
504         * ProcessModuleCollection.cs: Stub out more classes needed for Process
505
506 2002-03-31  Dick Porter  <dick@ximian.com>
507
508         * Process.cs: 
509         * ProcessPriorityClass.cs: 
510         * ProcessModule.cs: 
511         * FileVersionInfo.cs: Stub out classes needed for Process
512
513 2002-03-08  Jonathan Pryor <jonpryor@vt.edu>
514
515         * Debug.cs: Clean up (lots of code can be shared with Trace.cs, which 
516                 is why TraceImpl.cs is introduced), "DEBUG" conditional support
517         * TraceListener.cs: Proper implementation of Dispose pattern;
518                 implementatino of non-abstract methods in terms of abstract methods
519         * TraceListenerCollection.cs: check 'object' types before adding
520         * TextWriterTraceListener.cs: properly implement Dispose pattern;
521                 handle NeedIndent and WriteIndent
522         * Trace.cs: new file; provides Trace functionality, "TRACE" conditional
523                 support
524         * DefaultTraceListener.cs: new file; the default trace listener
525
526 2002-01-17  Miguel de Icaza  <miguel@ximian.com>
527         * TraceListenerCollection.cs: Remove Warnings.
528
529 2002-01-06  Ravi Pratap  <ravi@ximian.com>
530         * Switch.cs, TraceListenerCollection.cs : Decorate incomplete bits
531         with the MonoTODO attribute.
532
533 2002-01-04  John R. Hicks <angryjohn69@nc.rr.com>
534         * Added Debug.cs to the build.
535
536 2002-01-04  John R. Hicks <angryjohn69@nc.rr.com>
537         * Added preliminary TraceListenerCollection.cs to the build.
538
539 2002-01-04  John R. Hicks <angryjohn69@nc.rr.com>
540         * Added TraceListener.cs, TextWriterTraceListener.cs, and
541         DefaultTraceListener.cs to the build and moved them into the
542         proper assembly.
543
544 2002-01-04  John R. Hicks <angryjohn69@nc.rr.com>
545         * Added DiagnosticsConfigurationHandler.cs to the build.
546
547 2001-09-09  Nick Drochak <ndrochak@gol.com>
548         * BooleanSwitch.cs: Make this class use it's parent class's features.  Namely, use SwitchSetting
549         so that we can get OnSwitchSettingChanged() to fire for free.
550
551 2001-09-09  Nick Drochak <ndrochak@gol.com>
552         * ChangeLog: added this file
553         * Switch.cs: call OnSwitchSettingChanged() when the switch setting is, yes you gessed it, changed.