在asp.net核心应用的调试窗口中显示NLog输出

时间:2018-07-07 00:16:19

标签: asp.net-core visual-studio-2017 nlog

是否可以在Visual Studio 2017调试窗口中显示正在记录什么NLog(或内置调试器)?

我将NLog设置为输出到文件,但是对于开发人员来说,能够在调试窗口中看到调试消息非常方便。我可以看到有关如何使用控制台执行此操作的文章,但是对于asp.net项目,没有任何控制台输出,只有调试窗口。

2 个答案:

答案 0 :(得分:0)

是的,对于Asp.Net Core,有内置记录器提供程序,例如ConsoleDebug,可以将日志写入Output Window

如果使用WebHost.CreateDefaultBuilder(args),它将使用内置提供程序ConsoleDebug,并且可以通过 Output window-> Asp.NET Core Web检查输出。服务器以获得干净的结果。

对于NLog中的Getting started with ASP.NET Core 2,它使用下面的代码清除所有其他日志提供程序。

public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
    .UseStartup<Startup>()
    .ConfigureLogging(logging =>
    {
        logging.ClearProviders();
        logging.SetMinimumLevel(Microsoft.Extensions.Logging.LogLevel.Trace);
    })
    .UseNLog()  // NLog: setup NLog for Dependency injection
    .Build();

如果还需要在“调试”窗口中登录,则可以修改如下代码:

        public static IWebHost BuildWebHost(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
            .UseStartup<Startup>()
            .ConfigureLogging(logger => {
                logger.AddNLog();
                //logger.AddConsole(); //UnComment out this line if you did not use CreateDefaultBuilder
            })
            .Build();

答案 1 :(得分:0)

简单的解决方案是只使用OutputDebugString-target:

https://github.com/NLog/NLog/wiki/OutputDebugString-target

NetCore支持它:

https://github.com/NLog/NLog/wiki/platform-support