.NET 核心 3.x
好消息!这些恼人的消息不是由 ASP.NET Core 使用普通格式编写的Console
不再了。现在抽象Logger
使用,因此启动消息将由您的记录器以配置的格式写入,就像任何其他日志一样。
但如果您想一直删除这些日志,您可以使用以下两种方法之一
第一种方法是使用.ConfigureLogging(...)
主机构建器上的方法从记录器中删除所有默认提供程序:
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureLogging(loggingBuilder =>
{
loggingBuilder.ClearProviders(); // <-- here
})
.ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup<Startup>(); });
另一种方法是配置 .NET Core 3 记录器ConsoleLifetimeOptions
在你的Startup.cs
:
public void ConfigureServices(IServiceCollection services)
{
// ...
services.Configure<ConsoleLifetimeOptions>(opts => opts.SuppressStatusMessages = true);
// ...
}
注意:第二种方法不会禁用有关端口上正在侦听的应用程序的 Kestrel 日志(但第一种方法会)
info: Microsoft.Hosting.Lifetime[0]
Now listening on: https://localhost:5001
info: Microsoft.Hosting.Lifetime[0]
Now listening on: http://localhost:5000
.NET 核心 2.x
可以通过两种方式禁用这些消息(除了已经提到的控制台设置之外):
1)您可以使用环境变量禁用它们:"ASPNETCORE_SUPPRESSSTATUSMESSAGES": "true"
2)或者通过代码(在Program.cs
):
WebHost.CreateDefaultBuilder(args)
.UseSetting(WebHostDefaults.SuppressStatusMessagesKey, "True")
or
WebHost.CreateDefaultBuilder(args)
.SuppressStatusMessages(true);