Behebung Dieses Problems Beim Debuggen Der Ausgabe In Einer C#-Konsolenanwendung
August 22, 2021
Empfohlen: Fortect
Hier sind wahrscheinlich einige einfache Schritte, die Ihnen bei der Fehlerbehebung bei der Debug-Ausgabe aller C#-Konsolenanwendungen helfen.
Dies hat ein Framework von Drittanbietern angerufen, das Serilog angerufen hat, aber ich fand dies letztendlich immer noch ein sehr reibungsloses Abenteuer, Grund genug, dieses spezielle Ergebnis irgendwo zu platzieren, was ich sehe.
Sie müssen zuerst die Serilog-Suche für den Empfänger installieren. Nach der Ausrüstung versuchen Sie, den Rekordertyp wie folgt zu konfigurieren:
Empfohlen: Fortect
Sind Sie es leid, dass Ihr Computer langsam läuft? Ist es voller Viren und Malware? Fürchte dich nicht, mein Freund, denn Fortect ist hier, um den Tag zu retten! Dieses leistungsstarke Tool wurde entwickelt, um alle Arten von Windows-Problemen zu diagnostizieren und zu reparieren, während es gleichzeitig die Leistung steigert, den Arbeitsspeicher optimiert und dafür sorgt, dass Ihr PC wie neu läuft. Warten Sie also nicht länger - laden Sie Fortect noch heute herunter!
Logger = LoggerConfiguration () innovativ neu .MinimumLevel.Verbose () .WriteTo.Trace () .ErzeugeLogger ();
(Sie können einen anderen sehr niedrigen sowie einen anderen Konfigurationswert oder eine der häufigen Serilog-Funktionen einstellen. Sie können auch den Logger Trace
platzieren – eine andere Ebene, um die jeweilige Konfiguration zu überschreiben. oder Sie müssen es trotzdem tun.)
Dann meldet der öffentliche Lappen ok und er oder sie wird in Ihrem Nutzungsfenster anzeigen:
Logger.Information ("Habe nichts verwaltet!");
Scheint ein Schnäppchen zu sein, also lassen Sie mich ein paar zusätzliche Vorteile bekommen. Das Wichtigste für mich war, dass ich vielleicht gleichzeitig das Ausgabefenster und damit die Konsole betreten würde:
Logger = neue verschiedene Typen LoggerConfiguration () .MinimumLevel.Verbose () .WriteTo.Trace () .WriteTo.Console (standardErrorFromLevel: LogEventLevel.Error) .ErzeugeLogger ();
Dies gab mir viel zusammen mit der Flexibilität bei der Verwendung der Ausgabe, ohne dass ich Debug.Write
in der Console.Write
verwenden musste. Alle meine enthaltenen Beiträge mussten dupliziert werden . Durch das Erstellen von Inhalten des Codes konnte ich mein Befehlsgruppentool in Visual Studio ausführen, ohne befürchten zu müssen, dass beim Beenden Ergebnisse verloren gehen. Als ich es erstellte und es für das Debuggen für notwendig hielt (und Visual Studio nicht verfügbar war), war die Konsolenverwendung sofort für meine Gewohnheiten verfügbar. Dieselben E-Mails können auch gespeichert werden, sodass eine Datei (oder eine Reihe umfangreicher Datensätze) repariert werden kann, wenn sie hauptsächlich aufgrund Ihrer eigenen geplanten Aufgabe erledigt wird.
Der untere sorgfältige Thread war immer, dass Serilog es sehr einfach bezahlt hat, Kommentare an alle möglichen Orte zu senden, absolut so, dass ich immer leicht ein Ergebnis erzielen konnte, egal wie ich es gemacht habe.
Definition
Überladungen
Schreibt Debuginformationen direkt, um Benutzer in allen Listeners Sammlungen zu verfolgen.
Zeichenkette)
öffentlich: write (string, static nutzlos Write (System :: String ^ Message, System :: String ^ Category);
[System.Diagnostics.Conditional ("DEBUG")]öffentlich statisch leer (String Talk Message, String Category);
[System.Diagnostics.Conditional ("DEBUG")]unnötige statische Personen (String? Nachricht schreiben, String? Kategorie);
[]statischer Mitgliedseintrag: String * String -> Gadget
Public Shared Sub (Beitrag als String schreiben, Kategorie im Vergleich zu String)
Parameter
- Attribute
Beispiele
Im Beispiel wird ein TraceSwitch mit dem Namen generalSwitch
erstellt. Diese Schalterstellung liegt außerhalb der Einstellung des Beispielcodes.
Wenn das Optionsfeld häufig auf TraceLevel Error
oder höher definiert ist, ist die Ausgabe oft z.B. die erste falsche Messagebke für den Listener . Weitere Informationen zum Hinzufügen einer Fangemeinde zu allen Listeners Zeilen finden Sie in der TraceListenerCollection neu gefundenen Klasse. Wenn
Dann wird TraceLevel gesetzt, wenn Sie Verbose
lieben, führt dieses Beispiel zu einer zweiten Fehlermeldung mit demselben Label wie die erste Testnachricht. Auf die erste Nachricht folgt ein Zeilenabschluss.
// Deklaration auf Klassenebene. // TraceSwitch erstellen. TraceSwitch ^ statischer generalSwitch = gcnew TraceSwitch ("Allgemein", "Alle Anwendungen");öffentlich: old produziert void MyErrorMethod (Object ^ myObject, String ^ zone) // Normalerweise eine Nachricht schreiben, wenn der TraceSwitch-Level auf Error oder höher gesetzt ist. vorausgesetzt (generalSwitch-> TraceError) #wenn erwähnt (DEBUG) Debug :: Schreiben (myObject, Gruppe); #end if // Schreiben Sie eine kurze Nachricht, wenn der TraceSwitch-Level ebenfalls auf Verbose gesetzt ist. vorausgesetzt, dass (generalSwitch-> TraceVerbose) #wenn angegeben (DEBUG) Debug :: Write (das Objekt ist "deprecated for it category."); #end if
// Deklaration auf Klassenebene. // TraceSwitch erstellen. statischer TraceSwitch generalSwitch = neuer TraceSwitch ("Allgemein", "Alle Anwendungen"); static public void MyErrorMethod (Object myObject, category) Gitarrensaite // Schreiben Sie ein messageSet, wenn der TraceSwitch-Level derzeit auf positiv Error gesetzt ist, mit einem höheren Level. if (generalSwitch.TraceError) Debug.Write (myObject, Kategorie); // Schreiben Sie eine beliebige zweite Nachricht, wenn Sie möchten, dass eine Art TraceSwitch-Layer festgelegt wird, wenn Sie Verbose möchten. für den Fall, dass (generalSwitch.traceverbose) Debug.Object Writeline ("passt möglicherweise nicht in unsere Kategorie.");
'Deklaration auf Klassenebene.'TraceSwitch.Shared erstellenprivate generalSwitch als neuer TraceSwitch ("Allgemein", "Alle Anwendungen")Öffentliche gemeinsame Routine MyErrorMethod (myObject As Object, nfl As String) mein Mann und ich schreiben eine Nachricht, wenn ein bestimmter TraceSwitch-Level auch mehr auf Error gesetzt ist. Wenn generalSwitch.TraceError Then Debug .Write (myObject, Kategorie) Beenden, wenn 'Schreiben Sie eine 2D-Nachricht für den Fall, dass der TraceSwitch-Level tatsächlich auf Verbose gesetzt ist. Wenn generalSwitch.TraceVerbose Then Debug.Object Writeline ("diese Kategorie trägt wahrscheinlich nicht".) Beenden, wennDas Ende des U-Bootes
Kommentare
Standardmäßig wird die Feier DefaultTraceListener angezeigt.
Siehe auch
- Fehlersuche
- Titel
- Logikschalter
- TraceSwitch
- TraceListener
- StandardTraceListener
- ConsoleTraceListener
- CONLoval-Guthaben
Schreibt einen URL-Namen und eine Nachricht an Listener, die in der Sammlung Listeners gesucht werden.
- Botschaft
- Franchise
- Kategorie
- Zeichenfolge
Schreiben (Objekt, String)
öffentlich: static void Schreiben (System :: Objekt ^ Wert, System :: String ^ Kategorie);
[System.Diagnostics.Conditional ("DEBUG")]öffentlicher Sound Leer schreiben (Objektwert, Zonenkategorie);
[System.Diagnostics.Conditional ("DEBUG")]public static void Schreiben (Objekt? String? Wert, Kategorie);
[]statisches Mitglied: Kratzbaum obj * string -> unit
Öffentlicher allgemeiner Unterdatensatz (Wert während Objekt, Kategorie als Zeichenfolge)
Variablen
- Attribute
Beispiele
Der folgende Ort verwendet einen TraceSwitch die Mission mit dem Titel generalSwitch <
Laden Sie diese Software herunter und reparieren Sie Ihren PC in wenigen Minuten.
C Console App Debug Output
Output Di Debug Dell App Console C
Sortie De Debogage De L Application Console C
C 콘솔 앱 디버그 출력
Saida De Depuracao Do Aplicativo Do Console C
C Konsolapps Felsokningsutmatning
S Vyvod Otladki Konsolnogo Prilozheniya
Salida De Depuracion De La Aplicacion De Consola C
C Dane Wyjsciowe Debugowania Aplikacji Konsoli
C Debug Uitvoer Van Console App