1. 概要
開發過程中避免不了調試和日誌輸出使用 trace 對象無論在 debug 模式下和 release 模式運行的程式都可以進行實時跟蹤(vs 運行程式時 debugview 是監控不到的直接雙擊 exe 運行監控即可),順便來測試一下在.net8 中基於 aot 發布和普通模式下發布應用使用 debugview 工具查看 trace.write 輸出調試信息。
2. Debugview
debugview 是一個應用程式,支持你監視本地系統上或可通過 tcp/ip 訪問的網絡上任何計算機上的調試輸出。它可以同時顯示內核模式和 win32 調試輸出,因此無需調試器來捕獲應用程式或設備驅動程式生成的調試輸出,也無需修改應用程式或驅動程式以使用非標準調試輸出 api。

使用非常簡單,用管理員的身份啟動之後把 options 里的這幾項勾選即可(當我們寫的.net 程式運行之後會自動捕捉輸出的消息內容)。

3. 測試代碼
using System.Diagnostics;
namespace TraceAOT
{
internal class Program
{
static void Main(string[] args)
{
//指定Trace输出的日志文件名
Trace.Listeners.Add(new TextWriterTraceListener("MyTraceListeners"));
for (int i = 0; i < 10; i++)
{
Thread.Sleep(1000);
//在满足前面的表达式时输出,Trace信息。(同时也向Listeners添加信息。)
Trace.WriteLineIf(i==5, "Trace message.");
}
//Flush完成本次输出
Trace.Flush();
Console.WriteLine("OK");
Console.Read();
}
}
}
4. 測試結果

5. 結論
debugview 工具在基於.net 8 無論是 aot 或普通發布應用程式都是可以正常的使用,trace 對象無論在 debug 模式下和 release 模式運行的程式都可以進行實時跟蹤極大的簡化了我們追蹤調試的過程。