2017-08-31 79 views
2

我给我的第一个步骤,对.NET核心登录到与.net核2.0的Web应用程序

刚刚创建了一个网络世界,你好有

dotnet new web 

我可以看到控制台有某种日志启用。我只想将某些内容记录到控制台。

但我不知道如何从

app.Run(async (context) => 
{ 
    await context.Response.WriteAsync("Hello World!!!"); 
}); 

我为Console.WriteLine尝试,但它显然没有奏效访问记录。

也尝试与NLog按照本指南https://github.com/NLog/NLog.Web/wiki/Getting-started-with-ASP.NET-Core-(csproj---vs2017)但我不知道如何注入记录器。

我只是为了教育目的而环顾四周,不寻找一个真正的记录器,所以也许有一个更好/更容易的选择。

+1

日志记录以及记录在这里的根https://开头的文档。 microsoft.com/en-us/aspnet/core/fundamentals/logging?tabs=aspnetcore2x – Jehof

回答

2

我可以这样实现它:

[...] 
using Microsoft.Extensions.Logging; 
[...] 
namespace web 
{ 
    public class Startup 
    { 
     ILogger log; 
     public Startup(ILoggerFactory loggerFactory) 
     { 
      log = loggerFactory.CreateLogger("Logger"); 
     } 
     [...] 

     public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) 
     { 
      loggerFactory.AddConsole(); 
      loggerFactory.AddDebug(); 

      [...] 

      app.Run(async (context) => 
      { 
       log.LogInformation("logging!"); 
       await context.Response.WriteAsync("Hello World!"); 
      }); 
     } 
    } 
} 

也有一个appsettings.json文件添加到项目

{ 
    "Logging": { 
    "IncludeScopes": false, 
    "LogLevel": { 
     "Default": "Debug", 
     "System": "Information", 
     "Microsoft": "Information" 
    } 
    } 
} 
+0

我在这一段时间对此感到震惊。原来默认的LogLevel被设置为'Warning',并且我正在登录'Information' ...感谢推送。 – JackMorrissey