Esto requiere un marco de terceros, a saber, Serilog , pero no obstante, he encontrado que es una experiencia muy fluida para obtener resultados en algún lugar donde pueda verlo.
Primero debe instalar el fregadero Trace de Serilog . Una vez instalado, debe configurar el registrador de esta manera:
Logger = new LoggerConfiguration()
.MinimumLevel.Verbose()
.WriteTo.Trace()
.CreateLogger();
(Puede establecer un nivel mínimo diferente o establecerlo en un valor de configuración o cualquiera de las funciones normales de Serilog. También puede establecer el Trace
registrador en un nivel específico para anular las configuraciones, o como quiera hacer esto).
Luego, simplemente registra los mensajes normalmente y aparecen en su ventana de Salida:
Logger.Information("Did stuff!");
Esto no parece ser un gran problema, así que permítanme explicar algunas ventajas adicionales. El más importante para mí fue que podía iniciar sesión simultáneamente en la ventana Salida y en la consola :
Logger = new LoggerConfiguration()
.MinimumLevel.Verbose()
.WriteTo.Trace()
.WriteTo.Console(standardErrorFromLevel: LogEventLevel.Error)
.CreateLogger();
Esto me dio una gran flexibilidad en términos de cómo consumí de salida, sin tener que duplicar todas mis llamadas a Console.Write
con Debug.Write
. Al escribir el código, podía ejecutar mi herramienta de línea de comandos en Visual Studio sin temor a perder mi salida cuando salía. Cuando lo implementé y necesité depurar algo (y no tenía Visual Studio disponible), la salida de la consola estaba disponible para mi consumo. Los mismos mensajes también se pueden registrar en un archivo (o cualquier otro tipo de sumidero) cuando se ejecuta como una tarea programada.
La conclusión es que usar Serilog para hacer esto hizo que sea realmente fácil volcar mensajes a una multitud de destinos, asegurando que siempre pueda acceder fácilmente a la salida independientemente de cómo lo ejecuté.
También requiere una configuración y un código muy mínimos.
Debug.WriteLine()