ConsoleTraceListener: не записывать в окно вывода VS - PullRequest
2 голосов
/ 02 декабря 2011

У меня есть список трассировки (производный DefaultTraceListener) для записи специального формата в окно вывода VS (поэтому дважды щелкните -> перейти к исходным работам).Я удаляю стандартный прослушиватель трассировки вывода по умолчанию VS и заменяю его на этот.
Но я не хочу, чтобы этот длинный формат отображался в моей консоли, поэтому у меня есть отдельный прослушиватель, производный от ConsoleTraceLister, который дает там более короткую версию.Проблема заключается в том, что это также записывает в вывод VS, поэтому трассировки окна удваиваются.
Как остановить производный слушатель ConsoleTraceLister от записи в окно вывода VS?

1 Ответ

1 голос
/ 02 декабря 2011

// вот что можно попробовать, не уверенный, поможет ли это

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();
    }
}
...