Asp.net

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

  • January 20, 2021

我正在嘗試以這種方式在 ASP.NET Core 中列印日誌消息:

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 中查看消息?

您可以使用Debug偵聽器來實現您想要的:

"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!" );

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();

你需要這個 NuGet包。

引用自:https://stackoverflow.com/questions/37103660