Dies erfordert ein Framework von Drittanbietern, nämlich Serilog , aber ich habe es trotzdem als sehr empfunden reibungslose Erfahrung ist, die Ausgabe an einen Ort zu bringen, an dem ich sie sehen kann.
Sie müssen zuerst die Trace-Senke von Serilog installieren . Nach der Installation müssen Sie den Logger wie folgt einrichten:
Logger = new LoggerConfiguration()
.MinimumLevel.Verbose()
.WriteTo.Trace()
.CreateLogger();
(Sie können eine andere Mindeststufe oder einen Konfigurationswert oder eine der normalen Serilog-Funktionen festlegen. Sie können den Trace
Logger auch auf eine bestimmte Stufe einstellen, um Konfigurationen zu überschreiben, oder wie auch immer Sie dies tun möchten.)
Dann protokollieren Sie Nachrichten einfach normal und sie werden in Ihrem Ausgabefenster angezeigt:
Logger.Information("Did stuff!");
Dies scheint keine so große Sache zu sein, daher möchte ich einige zusätzliche Vorteile erläutern. Das größte Problem für mich war, dass ich mich gleichzeitig im Ausgabefenster und in der Konsole anmelden konnte :
Logger = new LoggerConfiguration()
.MinimumLevel.Verbose()
.WriteTo.Trace()
.WriteTo.Console(standardErrorFromLevel: LogEventLevel.Error)
.CreateLogger();
Dies gab mir große Flexibilität hinsichtlich der Art und Weise, wie ich die Ausgabe verbrauchte, ohne alle meine Anrufe Console.Write
mit duplizieren zu müssen Debug.Write
. Beim Schreiben des Codes konnte ich mein Befehlszeilentool in Visual Studio ausführen, ohne befürchten zu müssen, dass meine Ausgabe beim Beenden verloren geht. Als ich es bereitgestellt hatte und etwas debuggen musste (und Visual Studio nicht verfügbar hatte), war die Konsolenausgabe für meinen Verbrauch sofort verfügbar. Dieselben Nachrichten können auch in einer Datei (oder einer anderen Art von Senke) protokolliert werden, wenn sie als geplante Aufgabe ausgeführt wird.
Unter dem Strich war es mit Serilog sehr einfach, Nachrichten an eine Vielzahl von Zielen zu senden, sodass ich unabhängig von der Ausführung immer problemlos auf die Ausgabe zugreifen konnte.
Es erfordert auch sehr minimale Einrichtung und Code.
Debug.WriteLine()