6

Estoy usando el método Console.SetOut para escribir todas mis Console.Out.WriteLines en un archivo, y esto funciona. El único problema es que solo escribe todo en el archivo de texto cuando cierro la aplicación en lugar de escribir cada vez que sucede Console.Out.WriteLine. ¿Alguna idea sobre cómo puedo darme cuenta de esto?Console.SetOut to StreamWriter, escriba a archivo de texto constantemente

Cómo lo hago: Antes Application.Run();

FileStream writerOutput = new FileStream("Logging_Admin.txt", FileMode.Append, FileAccess.Write); 
StreamWriter writer = new StreamWriter(writerOutput); 
Console.SetOut(writer); 

Después Application.Run():

writer.Dispose(); 

Gracias.

Respuesta

11

El StreamWriter almacenará sus contenidos por defecto. Si desea vaciar el búfer se debe llamar al método Flush:

Borra todos los tampones para el escritor actual y hace que los datos almacenados temporalmente que se escriben en la secuencia subyacente.

+0

En segundo lugar esto ... –

+0

Sí, ese es el camino a seguir. ¡Muchas gracias! – Fverswijver

1

Si no desea llamar a color cada vez que lo hace manualmente, puede considerar implementar su propio objeto derivado de TextWriter para hacer esto por usted.

11

StreamWriter tiene una propiedad de AutoFlush. Cuando se establece en verdadero, debe obtener el resultado que necesita.

0

Para purgar el búfer, puede escribir writer.Close();

Cuestiones relacionadas