Asp.Net Core API disable startup complete message

只谈情不闲聊 提交于 2020-01-01 07:58:10

问题


As part of my application I have a .Net Core API project. Unlike most cases where this project would run as its own process, I have the API run in a thread, among others, in a single process. Also for my project, I have implemented a custom logging system to suit my needs. However, I have come across a slight problem. Every time I run my program, once the API starts, this message is printed to the console:

Hosting environment: Production
Content root path: C:\Users\Path\To\Code
Now listening on: http://*:8000
Application started. Press Ctrl+C to shut down.

I would like to disable this message as there is no need for it, and it clutters up the otherwise well organized console log. I have a screenshot below so you know exactly what I'm talking about:

I have already disabled all other logging for the mvc (removed ILoggerFactory from ConfigureServices and set all logging to "None" in appsettings.json).

How do I go about disabling/suppressing this message?


回答1:


You could also do this:

var host = BuildWebHost(args);
host.Start();
host.WaitForShutdown();

This will bypass the Console.WriteLine()s.




回答2:


In ASP.NET Core 2.1, use the SuppressStatusMessages method on the WebHostBuilder.

WebHost.CreateDefaultBuilder()
    .UseStartup<Startup>()
    .SuppressStatusMessages(true);



回答3:


These messages can be disabled in 2 ways (beside already mentioned console settings):

1) You can disable them with Environment variable: "ASPNETCORE_SUPPRESSSTATUSMESSAGES": "true"

2) Or through code (in Program.cs):

WebHost.CreateDefaultBuilder(args)
    .UseSetting(WebHostDefaults.SuppressStatusMessagesKey, "True") 

or

WebHost.CreateDefaultBuilder(args)
    .SuppressStatusMessages(true);



回答4:


Removing logger factory won't help, because it is Console.WriteLine() (Ref : Github issue comment) . You need to suppress the Console.WriteLine outputs. In the Main method, write code like this. This will ignore the Console.WriteLine outputs.

public static void Main(string[] args)
{
    Console.SetOut(new StreamWriter(Stream.Null));
    BuildWebHost(args).Run();
}


来源:https://stackoverflow.com/questions/44182609/asp-net-core-api-disable-startup-complete-message

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!