[Mono-dev] Bug in TraceSource

John Lenz jlenz2 at math.uiuc.edu
Fri Jan 7 16:57:07 EST 2011


Consider the following test program:

using System;
using System.Diagnostics;

public class Foo
{
	public static void Main()
	{
		var t = new TraceSource("Test", SourceLevels.All);
		Console.WriteLine(t.Switch.Level.ToString());
	}
}


If you run this using Microsoft.NET, it prints "All".  
If you run it with mono-2.8.1, mono prints "Off".

I believe the following patch fixes the problem, but I do not know if
this is the correct fix.

diff -r b99a9b69c1b6 mcs/class/System/System.Diagnostics/TraceSource.cs
--- a/mcs/class/System/System.Diagnostics/TraceSource.cs	Wed Jan 05 13:34:32 2011 -0500
+++ b/mcs/class/System/System.Diagnostics/TraceSource.cs	Fri Jan 07 15:54:48 2011 -0600
@@ -54,11 +54,11 @@
 			Hashtable sources = DiagnosticsConfiguration.Settings ["sources"] as Hashtable;
 			TraceSourceInfo info = sources != null ? sources [name] as TraceSourceInfo : null;
 			source_switch = new SourceSwitch (name);
+			source_switch.Level = sourceLevels
 
 			if (info == null)
 				listeners = new TraceListenerCollection ();
 			else {
-				source_switch.Level = info.Levels;
 				listeners = info.Listeners;
 			}
 		}


More information about the Mono-devel-list mailing list