Console.WriteLineメソッドで書きだされたものはどこに出力されるのですか?

タグの編集
投稿者 CWL  (中学生) 投稿日時 2011/8/6 18:54:16
Console.WriteLine("Test")
などのように実行しても特に何も起きません。
一体どこに出力されているのですか?
それを見ることはできますか?
投稿者 shu  (社会人) 投稿日時 2011/8/6 20:09:28
Visual Studioから実行していればVisual Studioの出力ウィンドウに表示されます。

コンソールアプリケーションであればコンソール画面に表示されます。

Visual Studioから実行せず直接exeを実行した場合、WinFormアプリの場合
そのままでは表示される場所がありません。
aaaa.exe > C:\tmp\aaa.txt
のように実行するとaaa.txtの中に書かれます。
投稿者 CWL  (社会人) 投稿日時 2011/8/6 21:04:51
shuさん、回答ありがとうございます。

VB2010において

「表示」→「その他のウィンドウ」→「出力」

と選んで出力ウィンドウを表示させたのですがデバッグ(F5実行)を行うと消えてしまいます。
常に表示しておくようなことはできないのでしょうか。
投稿者 CWL  (社会人) 投稿日時 2011/8/6 21:07:32
無事解決しました。

一応、参考までに解決までの手順を載せておきます。

ツール→オプション→プロジェクトおよびソリューション→「ビルド開始時に・・・」にチェックを入れる。
投稿者 CWL  (社会人) 投稿日時 2011/8/6 21:11:54
すみません。
先ほどの方法だとデバッグ終了後に「出力」が閲覧できるようですがデバッグ中は閲覧できないみたいです。

「出力の内容をすべてイミディエイトウィンドウにリダイレクトする」と設定したのですがやはりリアルタイムで表示はされませんでした。

どうしたら出力をリアルタイムで見れますか?
投稿者 CWL  (社会人) 投稿日時 2011/8/6 21:12:10
解決チェックを外しました。
投稿者 通りすがり  (社会人) 投稿日時 2011/8/6 22:03:00
デバッグ目的で見たいのであれば
Console.WriteLineではなく、デバッグビルドでDebug.WriteLineを使えばいいかと思います。
VSのどのウィンドウに出るか忘れましたけど、リアルタイムで見れると思います。


完全な余談ですが、一歩進めて出力用のメソッドを自作しておくといいかもしれません。
例えば今
Private Sub Button1_Click(。。。) ByVal sender As System.ObjectByVal e As System.EventArgs) Handles Button1.Click
    ' 何か処理 
    Console.WriteLine( " デバッグ情報 " )
End Sub

となっているものを

Private Sub Button1_Click(。。。) ByVal sender As System.ObjectByVal e As System.EventArgs) Handles Button1.Click
    ' 何か処理 
    MyDebugOut(" デバッグ情報 ")
End Sub


''' <Summary>デバッグ情報出力</Summary> 
Private Sub MyDebugOut(ByVal outputInfo As String)
    Console.WriteLine( outputInfo )
    Debug.WriteLine( outputInfo )
End Sub


などとしておくと、将来的にいろいろ変えたくなった場合便利ですよ。
# この例だと文字列型しか受けてつけていないのでいろんな情報を受け付けたい場合はオーバーロードとか必要になります。
# MyDebugOutを専用のクラス作ってSharedで宣言しておくのも手です。
投稿者 shu  (社会人) 投稿日時 2011/8/7 10:13:56
実行中に出力ウィンドウが消えてしまうという事でしょうか。
だとしたら実行中に出力ウィンドウの表示をして下さい。

Debug.WriteLineはDebug実行したときにのみ出力されるというだけで
出力先は変わらないです。
投稿者 CWL  (社会人) 投稿日時 2011/8/7 11:15:31
shuさんありがとうございます。
Debug.WriteLineを使ったところ無事イミディエイトウィンドウにリアルタイムで表示されました。

Console.WriteLine→コンソールアプリケーションでの出力メソッド

であったのですね。
投稿者 YuO  (社会人) 投稿日時 2011/8/7 13:25:04
ちなみに,構成ファイルに手を加えることで,DebugがTraceの出力先を制御できます。

MSDN: <trace> の <listeners> の <add> 要素
http://msdn.microsoft.com/ja-jp/library/hfaf9h0e.aspx


Debugへ出力しつつログファイルを出力する,などは上記の要素で制御可能です。