Console.WriteLineやConsole.ReadLineなど、直接対応するメソッドがある標準入出力とは異なり、Consoleクラスには直接標準エラーへ書き込むためのメソッドは用意されていません。
標準エラーへの書き込みを行う場合は、Console.Errorプロパティを使って書き込みを行います。 Console.ErrorもConsole.Outと同様、標準エラーへの書き込みを行うTextWriterとなっています。
標準出力と同様、標準エラーの実際の出力先はコンソールウィンドウ、リダイレクトされたファイルやIDEの出力ペインなどとなり、アプリケーションの種類や実行環境によって変わります。
Console.Error.WriteLineメソッドで標準エラーへ書き込む
using System;
class Sample {
static void Main()
{
// 標準出力への書き込み
Console.WriteLine("Hello, stdout!");
Console.Out.WriteLine("Hello, stdout!");
// 標準エラーへの書き込み
Console.Error.WriteLine("Hello, stderr!");
}
}
実行結果
>sample.exe Hello, stdout! Hello, stdout! Hello, stderr! >sample.exe > stdout.txt 2> stderr.txt >type stdout.txt Hello, stdout! Hello, stdout! >type stderr.txt Hello, stderr!
コマンドラインでのリダイレクト・パイプと標準入出力との接続についてはMS-DOSコマンドプロンプトTips §.パイプとリダイレクトを参照してください。