Asp.net核心+ IIS Express。如何查看日志消息?

时间:2016-05-08 18:57:09

标签: asp.net visual-studio asp.net-core iis-express

我正试图通过以下方式打印消息:

Console.WriteLine( "Hello World!" );

loggerFactory.MinimumLevel = LogLevel.Debug;
loggerFactory.AddConsole( LogLevel.Debug );
var logger = loggerFactory.CreateLogger("Startup");
logger.LogWarning( "Hi!" );

但我在哪里可以看到这些消息?

输出窗口不包含此消息。

如果我将项目作为Web运行,它会运行dnx控制台,我可以看到此消息。但这不方便。

但是,如果我以IIS Express的形式运行项目,我看不到也没有控制台,也没有消息。

有没有办法在Visual Studio中查看此消息?

4 个答案:

答案 0 :(得分:4)

转到文档 => IISExpress =>的日志

这就是你要找的东西。

答案 1 :(得分:4)

您可以使用Debug listener来实现您的目标:

"dependencies": {
  "Microsoft.Extensions.Logging.Debug": "1.0.0-rc1-final"
}
Console.WriteLine( "Hello World!" );

loggerFactory.MinimumLevel = LogLevel.Debug;
loggerFactory.AddDebug( LogLevel.Debug );
var logger = loggerFactory.CreateLogger("Startup");
logger.LogWarning( "Hi!" );

答案 2 :(得分:3)

IIS Express不会将其日志输出到Visual Studio的输出窗口。

您需要使用其他日志提供程序。

将其写入日志文件。您可以使用库,例如​​Serilog

using Serilog;

public class Startup
{
  public Startup(IHostingEnvironment env)
  {
      Log.Logger = new LoggerConfiguration()
          .WriteTo.File("log.txt")
          .CreateLogger();
...
public void Configure(IApplicationBuilder app, IHostingEnvironment env,
                        ILoggerFactory loggerFactory)
  {
      loggerFactory.AddSerilog();

您需要this NuGet个包裹。

答案 3 :(得分:1)

其他答案都没有解决实际问题:“使用 IIS Express 运行项目时,我们如何看到这些消息?”。所以,我决定添加我自己的,希望对大家有所帮助。

当您选择 IIS Express 时,通常的控制台窗口不会出现。但是您仍然可以按照以下步骤查看这些消息。

  1. 在 Visual Studio 中查找 Output 窗口。如果您已经拥有,请跳过下一步
  2. 转到查看菜单 > 输出或按 Ctrl + W,O。将显示输出窗口。
  3. 在输出窗口中,将下拉列表更改为 "<-your-project-name-> ASP.NET Core Web Server" 或类似内容。
  4. 您应该可以在此处看到这些消息。

enter image description here

我使用的是 VS 2019,上述步骤可能因您的 IDE 版本而异。