Presmerovanie Trace a Debug výpisov na Consolu

Zrejme všetci trochu otrelí vývojári v tej či onej miere využívame pri vývoji aplikácií Trace a Debug machanizmus na sledovanie udalostí v aplikácií. Občas si napíšeme malú testovaciu consolovú aplikáciu a radi by sme možno sledovali výpisy priamo v Console :-).

1. Prvou možnosťou je pridať ConsoleTraceListener cez App.Config. Hodnota atribútu initializeData je posunutá do konštruktora ConsoleTraceListener-a hovorí o presmerovaní výstupu na Console.Error stream.

<system.diagnostics>
<trace autoflush="true">
<listeners>
<add
name="configConsoleListener"
type="System.Diagnostics.ConsoleTraceListener"
initializeData="true"/>
</listeners>
</trace>
</system.diagnostics>

2. Programovo dosiahneme to isté správanie priamym zaregistrovaním ConsoleTraceListener-a medzi Trace listners.

using System;

using System.Collections.Generic;

using System.Text;

using System.Diagnostics;

 

namespace AspNet

{

    class Program

    {

        static void Main(string[] args)

        {

            using (ConsoleTraceListener listner = new ConsoleTraceListener(true))

            {

                Trace.Listeners.Add(listner);

                Trace.WriteLine("test");

            }

 

            Console.ReadKey(true);

        }

    }

}

3. Prípadne prostredníctvom TextWriterTraceListener-a s výstupom presmerovaným na Console.Out alebo Console.Error

using System;

using System.Collections.Generic;

using System.Text;

using System.Diagnostics;

 

namespace AspNet

{

    class Program

    {

        static void Main(string[] args)

        {

            using (TextWriterTraceListener listener = new TextWriterTraceListener(Console.Out))

            {

                Trace.Listeners.Add(listener);

                Trace.WriteLine("Test");

            }

 

            Console.ReadKey(true);

        }

    }

}

Komentáre

Bez komentárov

Prihlásiť | Registrovať | Pomoc