Sto eseguendo il codice su un microcontrollore con .NET Micro Framework e voglio che il mio output di debug scriva su un file di testo. Come funziona?Scrittura dell'output di debug C# in file .txt
risposta
Si dovrà fare qualcosa di simile:
// 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();
Tratto da here.
Usa Trace. È progettato per fare ciò di cui hai bisogno.
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 soluzione più flessibile per utilizzare un tracciato out-of-the-box è quello di rendere la configurazione di un'applicazione che definirà ascoltatori di traccia.
<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>
Poi, nella vostra applicazione, ogni volta che si desidera registrare qualcosa, basta fare:
Trace.WriteLine("Hello, this is a trace");
Ma il potere della classe TraceListener risiede nella sua granularità. È possibile scegliere tra i livelli Errore, Info e Avviso e definire un file di registro diverso per qualsiasi livello sia necessario tracciare. L'utilizzo dei file di configurazione rende inoltre più semplice disabilitare la traccia nell'applicazione perché non è necessario ricompilare l'applicazione.
Per ulteriori informazioni sul sistema di tracciamento, controllare questo MSDN article.
+1 Penso che tu risponda alla mia risposta/domanda che la soluzione dovrebbe funzionare in .NET Micro Framework. Sto ancora usando debugview.exe. – JPBlanc
Ekk ha ragione a proposito del fatto che Trace è un design migliore, tuttavia non risponde alla domanda, che andrebbe bene in assenza di una soluzione diretta. L'OP o qualcuno potrebbe aver ereditato una base di codice che utilizza Debug in tutto e Trace potrebbe non essere desiderabile al momento.
ho trovato questa soluzione [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");
Questo arriverà e rilascerà il file automaticamente e tutto quel jazz? – Sinaesthetic
Credo che l'autoflush possa essere configurato nel file .config - '
Semplice e veloce, come suggerito, non tutti i modi possono controllare la fonte da sviluppare :) Detto questo, questa soluzione fa scattare una stampa a doppia uscita all'interno di Visual Studio.Ma grazie comunque – bonitzenator
- 1. Scrittura scheda delimitato da file txt da C# .net
- 2. Scrittura su file txt da StringWriter
- 3. Scrittura di TUTTA l'output di un programma in un file txt in C++
- 4. PHP file di scrittura da input per txt
- 5. Scrittura su file txt con StreamWriter e FileStream
- 6. Scrittura di file binari in C++
- 7. lettura/scrittura di file bmp in c
- 8. Scrittura di file in bit in un file in C
- 9. Scrittura di dati di modulo html in un file txt senza l'uso di un server web
- 10. scrittura Structs in un file in c
- 11. semplice funzione di scrittura di file in C++
- 12. scrittura puntatore a file in C
- 13. Lettura/scrittura su file binari in C
- 14. scrittura di una matrice in un singolo file txt con mpi
- 15. Analisi del file txt
- 16. Oggetto di scrittura C# nel file binario
- 17. Aprire e leggere file txt in ASP
- 18. Scrittura in file di registro separati
- 19. Scrittura di file in hdf in C++ (libhdfs)
- 20. Posso leggere un file .TXT con PHP?
- 21. Trova tutte stringa "il" in file txt
- 22. Sistema di scrittura C#
- 23. File di Python Lettura + Scrittura
- 24. Lettura/Scrittura di file binari
- 25. Scrittura di un file system EXT4 in C?
- 26. riga di scrittura in un file utilizzando C
- 27. Scrittura di file transazionale in C# e Windows?
- 28. Lettura/scrittura di file CSV/delimitati da tabulazione in C#
- 29. scrittura String.trim() in C
- 30. scrittura intero a file binario (C++)
vi consiglio di appena reindirizzare l'output in un file (ad esempio your_app> log.txt). È più flessibile – m0skit0
Se stiamo parlando flessibile, direi usare NLog. Solo, non ho idea di come o in che modo avrebbe funzionato su un sistema vincolato ... @ m0skit0: C'è una shell con cui fare il reindirizzamento quando si usa .Net MF? –
nlog è buono anche log4net [Modifica] oops non è sicuro che quelle siano opzioni su .NET Micro ... – kenny