VB.Net で小さなバッチ処理コンソール アプリに取り組んでいるとしましょう。アプリを次のように構成できるようにしたい:
Sub WorkerMethod()
'Do some work
Trace.WriteLine("Work progress")
'Do more work
Trace.WriteLine("Another progress update")
'...
End Sub
Sub Main()
'Do any setup, like confirm the user wants to continue or whatever
WorkerMethod()
End Sub
出力Trace
ではなくを使用していることに注意してください。Console
これは、ワーカー メソッドが別の場所から呼び出されたり、別のアセンブリに存在したりする可能性があるためです。別のトレース リスナーをアタッチできるようにしたいのです。では、コンソールをトレースに接続するにはどうすればよいでしょうか?
簡単なクラス (以下に示す) を定義し、Trace のリスナー コレクションにインスタンスを追加することで、既にそれを行うことができますが、これを達成するためのより受け入れられた、または組み込みの方法があるかどうか疑問に思っています。
Public Class ConsoleTrace
Inherits Diagnostics.TraceListener
Public Overloads Overrides Sub Write(ByVal message As String)
Console.Write(message)
End Sub
Public Overloads Overrides Sub WriteLine(ByVal message As String)
Console.WriteLine(message)
End Sub
End Class