Supposons que je travaille sur une petite application de console de traitement par lots dans VB.Net. Je veux être en mesure de structurer l'application comme ceci:Rediriger la sortie Trace vers la console
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
Notez que j'utilise Trace
plutôt que Console
pour ma sortie. C'est parce que la méthode de travail peut être appelée d'ailleurs, ou même vivre dans un assemblage différent, et je veux pouvoir attacher différents écouteurs de trace à cela. Alors, comment puis-je connecter la console à la trace?
Je peux déjà le faire en définissant une classe simple (illustré ci-dessous) et en ajoutant une instance à la collection des auditeurs de la trace, mais je me demande s'il y a un plus accepté ou construit de façon d'y arriver:
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
Vous m'avez redirigé vers System.Diagnostics.ConsoleTraceListner. Je l'avais manqué d'une façon ou d'une autre. Je n'ai pas d'app.config par ailleurs, mais je peux le configurer assez facilement à la place. –
Cela fonctionne très bien pour .exe qui ont config, mais j'ai une situation similaire, mais avec une DLL. Je ne veux pas modifier le fichier .config de l'exe appelant (c'est nunit-console.exe). Je vais continuer à regarder, mais je vous ai quand même lancé un vote, car j'ai certainement appris quelque chose. –