这需要一个第三方框架,即Serilog,但是我发现将输出到我可以看到的某个地方是一种非常流畅的体验。
您首先需要安装Serilog的Trace sink。安装后,您需要按以下方式设置记录器:
Logger = new LoggerConfiguration()
.MinimumLevel.Verbose()
.WriteTo.Trace()
.CreateLogger();
(您可以设置其他最低级别,也可以将其设置为配置值或任何常规Serilog功能。也可以将Trace
记录器设置为特定级别以覆盖配置,或者您也可以这样做。)
然后,您只需正常记录消息,它们就会显示在“输出”窗口中:
Logger.Information("Did stuff!");
这似乎没什么大不了的,所以让我解释一些其他的优点。对我来说,最大的好处是我可以同时登录到“输出”窗口和控制台:
Logger = new LoggerConfiguration()
.MinimumLevel.Verbose()
.WriteTo.Trace()
.WriteTo.Console(standardErrorFromLevel: LogEventLevel.Error)
.CreateLogger();
就我如何使用输出而言,这给了我极大的灵活性,而不必重复所有对Console.Write
with的调用Debug.Write
。编写代码时,我可以在Visual Studio中运行命令行工具,而不必担心退出时会丢失输出。当我部署它并需要调试某些东西(并且没有可用的Visual Studio)时,控制台输出就可以供我使用了。当文件作为计划任务运行时,相同的消息也可以记录到文件(或任何其他类型的接收器)中。
最重要的是,使用Serilog做到这一点使将消息转储到多个目标变得非常容易,从而确保无论我如何运行,我始终可以随时访问输出。
它还需要非常少的设置和代码。
Debug.WriteLine()