C# System.Diagnostics.Trace,最简单的编程配置

C# System.Diagnostics.Trace,最简单的编程配置,c#,.net,trace,system.diagnostics,C#,.net,Trace,System.diagnostics,以下程序不打印文本“这是跟踪”。没有app.config 我的问题是,如何修改以下代码(仅修改代码,不修改任何配置文件),以便在调用t.TraceEvent时传递的消息显示在控制台窗口中 using System; using System.Collections.Generic; using System.Diagnostics; namespace ConsoleApplication1 { class Program { static void Main(stri

以下程序不打印文本“这是跟踪”。没有app.config

我的问题是,如何修改以下代码(仅修改代码,不修改任何配置文件),以便在调用t.TraceEvent时传递的消息显示在控制台窗口中

using System;
using System.Collections.Generic;
using System.Diagnostics;

namespace ConsoleApplication1 {
    class Program {
        static void Main(string[] args) {
            Trace.Listeners.Add(
                new TextWriterTraceListener(Console.Out)
            );

            TraceSource t = new TraceSource("Test");
            t.Listeners.AddRange(Trace.Listeners);
            t.TraceEvent(TraceEventType.Critical, 1, "This is a trace");

            Console.Write("Press enter to quit");
            Console.ReadLine();
        }
    }
}

DefaultTraceListener
将写入输出窗口。要向TraceListener发送消息,只需调用
Trace.WriteLine(“我的输出字符串”)

编辑: 为了响应您的评论,以下代码将在控制台窗口中“按enter键退出”之前立即打印“我的输出字符串”:

  static void Main(string[] args)
  {
     Trace.Listeners.Add(new TextWriterTraceListener(Console.Out));

     Trace.WriteLine("my output string");

     Console.Write("Press enter to quit");
     Console.ReadLine();
  }
编辑2: 在重新阅读您的问题后,我意识到您正在特别尝试使用
TraceSource
,在这种情况下,您只需设置开关,以便它知道应将哪一级别的跟踪事件发送到控制台窗口。请在添加侦听器后尝试添加以下内容:

SourceSwitch sourceSwitch = new SourceSwitch("SourceSwitch", "Verbose");
t.Switch = sourceSwitch;

如果使用的是版本配置,请定义跟踪符号。或者切换到调试配置。
SourceSwitch sourceSwitch = new SourceSwitch("SourceSwitch", "Verbose");
t.Switch = sourceSwitch;