我有一个跟踪列表器(派生自DefaultTraceListener),可以将特殊格式写入VS输出窗口(因此,双击->转到源代码作品)。我删除了标准的VS输出默认跟踪侦听器,并将其替换为此。
但是我不希望在控制台中显示这种长格式,因此我有一个单独的ConsoleTraceLister派生的侦听器来提供一个较短的版本。问题是这也会写入VS输出,因此窗口轨迹会加倍。
如何阻止ConsoleTraceLister派生的侦听器写入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();
    }
}

关于c# - ConsoleTraceListener:不要写入VS输出窗口,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8357374/

10-10 03:48