Angenommen, ich arbeite an einer kleinen Konsolen-App für die Stapelverarbeitung in VB.Net. Ich möchte die App folgendermaßen strukturieren können:
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
Beachten Sie, dass ich Trace
nicht Console
für meine Ausgabe verwende. Dies liegt daran, dass die Worker-Methode möglicherweise von einer anderen Stelle aufgerufen wird oder sogar in einer anderen Assembly lebt, und ich möchte in der Lage sein, verschiedene Trace-Listener daran anzuhängen. Wie kann ich die Konsole mit dem Trace verbinden?
Ich kann dies bereits tun, indem ich eine einfache Klasse definiere (siehe unten) und der Listener-Sammlung des Trace eine Instanz hinzufüge, aber ich frage mich, ob es eine akzeptierte oder eingebaute Methode gibt, um dies zu erreichen:
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