1. 概要
開発過程でデバッグやログ出力は避けられませんが、Trace オブジェクトを使用すると、デバッグモードとリリースモードの両方で実行中のプログラムをリアルタイムで追跡できます(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 オブジェクトはデバッグモードとリリースモードの両方で実行中のプログラムをリアルタイムで追跡できるため、トレースとデバッグのプロセスを大幅に簡素化します。