2013-06-11 5 views
5

テスト時にコンソールアプリケーションとして実行するWindowsサービスアプリケーションで、さまざまなConsole.Out.Write()ステートメントをデバッグ用に追加しました。アプリケーションをサービスとしてデプロイするときにこれらのステートメントを残すことに何らかの害がありますか? (デバッグ情報は機密情報ではありませんが、ユーザーが見つけて見ても気にしません)Console.Out.Write()はWindowsサービスのどこに行きますか?

また、実行中の特定のサービスのコンソール出力を表示する方法はありますか?

+0

Console.WriteLine ?? –

+2

あなたのコードが必要以上に遅く実行されることは害です。 Debug.Print()やロギングライブラリを使用して完全に無効にするか、問題があるために必要なときに参照できるようにするには、少なくともそれを見ることはありません。 –

+0

@BhushanFirake Console.WriteLine()またはConsole.Out.WriteLine()が適用されます。私が知っておくべきこの文脈の違いは何ですか? – invertigo

答えて

2

アプリケーションをサービスとしてデプロイするときにこれらのステートメントを残しても問題ありませんか?

Consoleに印刷する場合、Exceptionは表示されません。こうすることで、エラーや例外について完全に暗闇に陥ることになります。

実行中の特定のサービスのコンソール出力を表示する方法はありますか。

はい、確かに。 Debug.Print()またはDebug.WriteLine()を使用して印刷した後、出力ウィンドウで出力を表示できます。

どちらも同じことですが、Debug.Print()は文字列を受け取りますが、Debug.WriteLine()はオブジェクトのToString()メソッドを呼び出すことになります。

IMHO、これらのすべてを印刷するのではなく、何らかのログを使用する必要があります。あなたはいつでもログを見ることができますが、コンソール出力は常に座って見ることができません。

+0

ありがとうございます。私は、情報、エラーなどを記録するより良い方法があることを知っていますが、それは私がこの場合に探しているものではありません。開発者(自分自身を含む)がWriteLine()ステートメントを追加したケースを取り除くために、レガシーコードを通過する絶対的な「必要性」がある場合はもっと興味があります。現像。 – invertigo

+1

@invertigoまた、コンソール出力を展開まで追加します。しかし、それが上がったらCtrl + Fキーを押して、すべての 'Console.WriteLine'を' Debug.Print'sに置き換えてください::P –

関連する問題