Problema redirigiendo la salida de depuración a un archivo usando el escucha de rastreo

He creado un detector de depuración para redirigir la salida de la ventana Debug / Console a un archivo (con una pila de llamadas), usando el siguiente código:

void SomeMethod()
{
    // Create a file for output .txt.
    Stream debugFile = File.Create(fileName);

    // create TextWriterTraceListener named "file"
    TextWriterTraceListener debugWriter = new TextWriterTraceListener(debugFile, "file");

    // add to debug listeners
    Debug.Listeners.Add(debugWriter);
    // set callstack to be shown
    Debug.Listeners["file"].TraceOutputOptions |= TraceOptions.Callstack;
    // set auto-flush
    Debug.AutoFlush = true;
}

pero el resultado no redirigirá al archivo que especifiqué, siempre está vacío.

Llamo a esto desde el constructor en mi formulario principal. ¿Es el lugar donde lo llamo por un problema?

Lo que estoy tratando de lograr aquí es tener las excepciones de la ventana de salida de Depuración colocadas en un archivo con una pila de llamadas, para que pueda encontrarlas y corregirlas.

ACTUALIZA: Después de algunas investigaciones llegué a la conclusión de que agregar una nuevaTraceListener a la depuraciónListeners collection no redirige el resultado de la depuración / consola. En realidad solo responde aWrite, WriteLine etc. métodos al igual que el oyente predeterminado. El problema sigue siendo: ¿Cómo capturar la salida de la ventana Debug / Console y cómo obtener el seguimiento de la pila de las excepciones que aparecen allí?

¿Alguien tiene alguna idea

Respuestas a la pregunta(1)

Su respuesta a la pregunta