Cela nécessite un cadre tiers, à savoir Serilog , mais je l'ai néanmoins trouvé très expérience fluide pour obtenir la sortie à un endroit où je peux le voir.
Vous devez d'abord installer l' évier Trace de Serilog . Une fois installé, vous devez configurer l'enregistreur comme ceci:
Logger = new LoggerConfiguration()
.MinimumLevel.Verbose()
.WriteTo.Trace()
.CreateLogger();
(Vous pouvez définir un niveau minimum différent ou le définir sur une valeur de configuration ou sur l'une des fonctionnalités normales de Serilog. Vous pouvez également définir le paramètre Trace
enregistreur sur un niveau spécifique pour remplacer les configurations, ou comme vous le souhaitez.)
Ensuite, vous enregistrez simplement les messages normalement et ils apparaissent dans votre fenêtre de sortie:
Logger.Information("Did stuff!");
Cela ne semble pas si grave, alors laissez-moi vous expliquer quelques avantages supplémentaires. Le plus important pour moi était que je pouvais simultanément me connecter à la fois à la fenêtre de sortie et à la console :
Logger = new LoggerConfiguration()
.MinimumLevel.Verbose()
.WriteTo.Trace()
.WriteTo.Console(standardErrorFromLevel: LogEventLevel.Error)
.CreateLogger();
Cela m'a donné une grande flexibilité en termes de consommation de sortie, sans avoir à dupliquer tous mes appels Console.Write
avec Debug.Write
. Lors de l'écriture du code, je pouvais exécuter mon outil de ligne de commande dans Visual Studio sans craindre de perdre ma sortie à sa sortie. Lorsque je l'avais déployé et que je devais déboguer quelque chose (et que Visual Studio n'était pas disponible), la sortie de la console était facilement disponible pour ma consommation. Les mêmes messages peuvent également être enregistrés dans un fichier (ou tout autre type de récepteur) lorsqu'il s'exécute en tant que tâche planifiée.
L'essentiel est que l'utilisation de Serilog pour ce faire a vraiment facilité le vidage des messages vers une multitude de destinations, assurant que je pouvais toujours accéder facilement à la sortie, quelle que soit la façon dont je l'ai exécuté.
Il nécessite également une configuration et un code très minimes.
Debug.WriteLine()