次のテスト プログラムでは、エラー出力が正しく Error.txt に書き込まれます。
using System;
using System.IO;
public class Test{
public static void Main(string[] args){
Console.SetOut(new StreamWriter("Output.txt", true));
Console.SetError(new StreamWriter("Error.txt", true));
int[] test = new int[1];
Console.Error.WriteLine(test[0]);
}
}
ただし、行を変更すると
Console.Error.WriteLine(test[0]);
に
Console.Error.WriteLine(test[7]);
これにより例外が発生すると、この例外のエラー メッセージがファイルではなくコンソールに出力されます。システムがスローした例外のエラー メッセージもファイルにリダイレクトされるようにプログラムで設定するにはどうすればよいですか?
このプログラムが実行されるコンテキストのため、単純なコンソールのリダイレクト (2> または >) はオプションではありません。