Скажем, я работаю над небольшим консольным приложением пакетной обработки в 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