console tracellistener: Don't write to VS输出窗口

本文关键字:to write VS 输出 窗口 tracellistener Don console | 更新日期: 2023-09-27 18:16:23

我有一个跟踪列表(DefaultTraceListener派生)编写一个特殊的格式VS输出窗口(所以双击->去源作品)。我删除了标准的VS输出默认跟踪侦听器,并将其替换为这个。
但是我不希望这个长格式显示在我的控制台中,所以我有一个单独的ConsoleTraceLister派生的监听器来提供一个较短的版本。问题是这也写入VS输出,所以在窗口跟踪是加倍的。
如何阻止一个ConsoleTraceLister派生的监听器从写VS输出窗口?

console tracellistener: Don't write to VS输出窗口

//你可以试试不确定是否有帮助

using System;
using System.IO;
using System.Diagnostics;

public class Test
{
    public static void Main()
    {
        TextWriterTraceListener myWriter = new
        TextWriterTraceListener(System.Console.Out);
        Debug.Listeners.Add(myWriter);
        Debug.WriteLine("Test output 1 ");
        Stream myFile = File.Create("output.txt");
        TextWriterTraceListener myTextListener = new
        TextWriterTraceListener(myFile);
        Debug.Listeners.Add(myTextListener);
        Debug.WriteLine("Test output 2 ");

        if (!EventLog.SourceExists("Demo"))
        {
            EventLog.CreateEventSource("Demo", "Demo");
        }

        Debug.Listeners.Add(new EventLogTraceListener("Demo"));
        Debug.WriteLine("Test output 3 ");
        myWriter.Flush();
        myWriter.Close();
        myFile.Flush();
        myFile.Close();
    }
}