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

Asp.net core 在asp.net核心应用程序的调试窗口中显示NLog输出,asp.net-core,visual-studio-2017,nlog,Asp.net Core,Visual Studio 2017,Nlog,是否可以显示Visual Studio 2017调试窗口中记录的NLog(或内置调试器)是什么 我将NLog设置为输出到文件,但对于开发来说,能够在调试窗口中查看调试消息将非常方便。我可以看到关于如何使用console执行此操作的文章,但对于asp.net项目,没有任何控制台输出,只有调试窗口。是的,对于asp.net Core,有内置的记录器提供程序,如console和debug将日志写入输出窗口 如果您使用WebHost.CreateDefaultBuilder(args),它将使用内置的提

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


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

是的,对于asp.net Core,有内置的记录器提供程序,如
console
debug
将日志写入
输出窗口

如果您使用
WebHost.CreateDefaultBuilder(args)
,它将使用内置的提供程序
Console
Debug
,您可以通过输出窗口->Asp.NET Core Web Server检查输出以获得干净的结果

对于from
NLog
,它使用下面的代码清除所有其他日志提供程序

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();
公共静态IWebHost BuildWebHost(字符串[]args)=>
WebHost.CreateDefaultBuilder(args)
.UseStartup()
.ConfigureLogging(日志=>
{
logging.ClearProviders();
logging.SetMinimumLevel(Microsoft.Extensions.logging.LogLevel.Trace);
})
.UseNLog()//NLog:为依赖项注入设置NLog
.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();
公共静态IWebHost BuildWebHost(字符串[]args)=>
WebHost.CreateDefaultBuilder(args)
.UseStartup()
.ConfigureLogging(记录器=>{
logger.AddNLog();
//logger.AddConsole();//如果未使用CreateDefaultBuilder,请取消对此行的注释
})
.Build();

简单的解决方案就是使用
OutputDebugString
-target(NetCore支持)

例如:

<targets>
  <target name="debugger" xsi:type="OutputDebugString" layout="${logger}::${message}"/>
</targets>

<rules>
  <logger name="*" minlevel="Trace" writeTo="debugger" />
</rules>

另一种方法可以使用
xsi:type=“debugger”