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