[c#] 寫入Visual Studio的輸出窗口?


Answers

這將寫入調試輸出窗口:

using System.Diagnostics;

Debug.WriteLine("Send to debug output.");
Question

我試圖寫出一條消息到輸出窗口進行調試。 我搜索了一個像Java的system.out.println("")這樣的函數。 我試過Debug.WriteConsole.WriteTrace.Write 。 它不會給出錯誤,但它也不會打印任何內容。

選中“定義DEBUG常量”和“定義TRACE常量”選項。

菜單工具選項調試“將所有輸出窗口文本重定向到立即窗口”選項未被選中。

配置:活動(調試)

注意:如果相關,我使用嚮導創建了一個項目作為“Windows窗體應用程序”。 我不知道在哪裡看。




    Debug.WriteLine

是你在找什麼。

如果沒有,請嘗試這樣做:

菜單工具選項調試 →取消選中發送輸出到立即




打印到Visual Studio的輸出窗口:

Debug.Writeline();



這需要第三方框架,即Serilog ,但我仍然認為它是一種非常流暢的體驗,可以將輸出傳輸到我可以看到的某個位置。

您首先需要安裝Serilog的跟踪接收器 。 安裝完成後,您需要像這樣設置記錄器:

Logger = new LoggerConfiguration()
    .MinimumLevel.Verbose()
    .WriteTo.Trace()
    .CreateLogger();

(您可以設置不同的最低級別或將其設置為配置值或任何正常的Serilog功能。您還可以將Trace記錄器設置為特定級別以覆蓋配置,或者您想這樣做。)

然後,您只需正常記錄消息並將它們顯示在“輸出”窗口中:

Logger.Information("Did stuff!");

這看起來不是什麼大不了的,所以讓我解釋一些額外的優點。 對我來說最大的問題是我可以同時登錄到輸出窗口和控制台

Logger = new LoggerConfiguration()
    .MinimumLevel.Verbose()
    .WriteTo.Trace()
    .WriteTo.Console(standardErrorFromLevel: LogEventLevel.Error)
    .CreateLogger();

這給了我很大的靈活性,就如何使用輸出而言,無需使用Debug.Write將所有調用重複到Console.Write 。 在編寫代碼時,我可以在Visual Studio中運行我的命令行工具,而不必擔心在退出時丟失輸出。 當我部署它並且需要調試某些東西(並且沒有Visual Studio可用)時,控制台輸出可以隨時用於我的使用。 當它作為計劃任務運行時,也可以將相同的消息記錄到文件(或任何其他類型的接收器)中。

最重要的是,使用Serilog來做到這一點使得將消息轉儲到多個目的地非常容易,確保我可以隨時訪問輸出,無論我如何運行它。

它還需要非常少的設置和代碼。




對我來說,只有Trace命名空間而不是調試的工作:

System.Diagnostics.Trace.WriteLine("message");

我正在Visual Studio 2010下的C#項目中工作。




Links