我在Mono中使用TraceSources得到奇怪的结果:
using System;
using System.Diagnostics;
namespace test
{
class MainClass
{
static void show(SourceLevels l)
{
TraceSource t = new TraceSource("test");
t.Switch.Level = l;
Console.WriteLine(t.Switch.Level);
Console.WriteLine("Critical: " + t.Switch.ShouldTrace(TraceEventType.Critical));
Console.WriteLine("Error: " + t.Switch.ShouldTrace(TraceEventType.Error));
Console.WriteLine("Warning: " + t.Switch.ShouldTrace(TraceEventType.Warning));
Console.WriteLine("Information: " + t.Switch.ShouldTrace(TraceEventType.Information));
Console.WriteLine("Verbose: " + t.Switch.ShouldTrace(TraceEventType.Verbose));
}
public static void Main(string[] args)
{
show(SourceLevels.ActivityTracing);
show(SourceLevels.All);
show(SourceLevels.Critical);
show(SourceLevels.Error);
show(SourceLevels.Information);
show(SourceLevels.Off);
show(SourceLevels.Verbose);
}
}
}
结果如下:
ActivityTracing
Critical: False
Error: False
Warning: False
Information: False
Verbose: False
All
Critical: True
Error: True
Warning: True
Information: True
Verbose: True
Critical
Critical: True
Error: True
Warning: True
Information: True
Verbose: True
Error
Critical: True
Error: True
Warning: True
Information: True
Verbose: True
Information
Critical: True
Error: True
Warning: True
Information: True
Verbose: True
Off
Critical: False
Error: False
Warning: False
Information: False
Verbose: False
Verbose
Critical: True
Error: True
Warning: True
Information: True
Verbose: True
我希望看到一些差异。但它似乎全部或全部关闭。这是不是在Mono中实现的? 或者我在做一些愚蠢的事情?