Estoy ejecutando código en un microcontrolador con .NET Micro Framework, y quiero que mi salida de depuración escriba en un archivo de texto. ¿Como funciona esto?Escribir la salida de depuración de C# en el archivo .txt
Respuesta
Usted tendrá que hacer algo como esto:
// Set up listener
string filename = @"C:\listener.txt";
FileStream traceLog = new FileStream(filename, FileMode.OpenOrCreate);
TextWriterTraceListener listener = new TextWriterTraceListener(traceLog);
// Output to listener
listener.WriteLine("Trace message here");
// Flush any open output before termination.
// Maybe in an override of Form.OnClosed.
listener.Flush();
Tomado de here.
Uso Trace. Está diseñado para hacer lo que necesita.
using System;
using System.Diagnostics;
class Test
{
static void Main()
{
Trace.Listeners.Add(new TextWriterTraceListener("yourlog.log"));
Trace.AutoFlush = true;
Trace.Indent();
Trace.WriteLine("Entering Main");
Console.WriteLine("Hello World.");
Trace.WriteLine("Exiting Main");
Trace.Unindent();
Trace.Flush();
}
}
la solución más flexible para el uso de un trazado fuera de la caja es hacer un archivo de configuración de la aplicación que definirá escucha de seguimiento.
<configuration>
<system.diagnostics>
<trace autoflush="true">
<listeners>
<add name="textListener"
type="System.Diagnostics.TextWriterTraceListener"
initializeData="trace.log" />
<remove name="Default" />
</listeners>
</trace>
</system.diagnostics>
</configuration>
Luego, en su aplicación, cada vez que desee conectarse algo, sólo lo hacen:
Trace.WriteLine("Hello, this is a trace");
Pero el poder de la clase TraceListener se encuentra en su granularidad. Puede elegir entre los niveles de Error, Información y Advertencia y definir diferentes archivos de registro para cualquier nivel que necesite rastrear. El uso de archivos de configuración hace que sea más fácil desactivar el rastreo en su aplicación porque no necesita volver a compilar su aplicación.
Para obtener más información sobre el sistema de seguimiento, consulte MSDN article.
+1 Creo que respondes mi respuesta/pregunta tu solución debería funcionar en .NET Micro Framework. Todavía estoy usando debugview.exe. – JPBlanc
Ekk tiene razón acerca de que Trace es un mejor diseño, sin embargo, eso no responde a la pregunta, lo que estaría bien en ausencia de una solución directa. El OP o alguien puede haber heredado una base de código que usa Debug en todo momento, y Trace puede no ser deseable en ese momento.
He encontrado esta solución [http://bytes.com/topic/c-sharp/answers/273066-redirect-output-debug-writeline]:
TextWriterTraceListener[] listeners = new TextWriterTraceListener[] {
new TextWriterTraceListener("C:\\debug.txt"),
new TextWriterTraceListener(Console.Out)
};
Debug.Listeners.AddRange(listeners);
Debug.WriteLine("Some Value", "Some Category");
Debug.WriteLine("Some Other Value");
¿Funcionará esto y liberará el archivo automáticamente y todo ese jazz? – Sinaesthetic
Creo que autoflush se puede configurar en el archivo .config - '
Rápido y fácil, como usted sugiere, no podemos controlar de ninguna manera la fuente que se va a desarrollar :) Dicho esto, esta solución activa una doble salida de impresión dentro del estudio visual.Pero gracias de todos modos – bonitzenator
- 1. Escribir el archivo txt delimitado por tabuladores desde C# .net
- 2. Cómo escribir la salida de la consola en un archivo txt
- 3. Escribir TODO el resultado del programa en un archivo txt en C++
- 4. Exportación de Mathematica Imprimir [] Salida a un archivo .txt
- 5. Cómo crear y escribir en un archivo txt usando VBA
- 6. Visual C# - Escribir contenidos de un cuadro de texto en un archivo .txt
- 7. Escribir mensajes de depuración en la ventana de salida de Xcode
- 8. Escribir salida WPF en el archivo de imagen
- 9. VisualStudio: sin salida de depuración
- 10. ¿Cómo escribir la salida de AUGraph en un archivo?
- 11. Escribir cadena en la secuencia de salida
- 12. Encuentra toda la cadena "la" en el archivo .txt
- 13. C# - Lectura de texto en ruso desde un archivo .txt
- 14. cómo sobrescribir datos en un archivo txt?
- 15. Detener el evento de depuración en C#
- 16. problema redirigir la salida de depuración en un archivo mediante escucha de seguimiento
- 17. Cómo arrastrar y soltar un archivo '.txt' en obj-c
- 18. Leer el archivo txt con multi-threaded en python
- 19. Cómo convertir el archivo * .txt en Unicode
- 20. ¿Cómo escribir la salida del script en el archivo y la línea de comandos?
- 21. ¿Cómo escribir el contenido de un archivo en otro?
- 22. ¿Qué escribir en el archivo de registro?
- 23. ¿Cómo veo la salida de depuración gstreamer?
- 24. Error de salida/registro de advertencia (archivo txt) al ejecutar el script R en la línea de comando
- 25. cómo dirigir la salida a un archivo txt en python en Windows
- 26. Adjuntar un archivo txt en
- 27. Escribir excepciones en el archivo
- 28. Leer carrozas de un archivo .txt
- 29. ¿Cómo escribir la salida de la consola en un archivo de texto en cpp?
- 30. depuración C# en la línea de comandos
recomiendo que acaba de redirigir la salida a un archivo (por ejemplo your_app> registro.txt). Es mas flexible – m0skit0
Si hablamos de flexibilidad, yo diría que use NLog. Solo que no tengo ni idea de cómo o de qué manera funcionaría en un sistema restringido ... @ m0skit0: ¿Hay un shell con el que hacer la redirección al usar .Net MF? –
nlog's bueno también log4net [Editar] oops no estoy seguro de que esas sean opciones en .NET Micro ... – kenny