2017-05-25 12 views
9

Jako część mojej aplikacji mam projekt .Net Core API. W przeciwieństwie do większości przypadków, w których projekt ten byłby uruchamiany jako własny proces, API jest uruchamiane w wątku, między innymi, w jednym procesie. Również w przypadku mojego projektu zaimplementowałem niestandardowy system logowania do moich potrzeb. Jednak natknąłem się na niewielki problem. Za każdym razem uruchomić mój program, po uruchomieniu API, ten komunikat zostanie wydrukowany do konsoli:Asp.Net Core API wyłączanie komunikatu o uruchomieniu zakończonym

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

chciałbym, aby wyłączyć ten komunikat, ponieważ nie ma takiej potrzeby, a nie zaśmieca skądinąd dobrze zorganizowane log konsoli. Mam zrzut ekranu poniżej więc wiesz dokładnie, co mówię:

Screenshot of message

już wyłączone wszystkie inne rejestrowanie dla MVC (usunięty ILoggerFactory od ConfigureServices i ustawić wszystko zalogowaniu na „None” w appsettings.json).

Jak mogę wyłączyć/wyłączyć tę wiadomość?

+0

Przetnij wyjście do/dev/null –

Odpowiedz

1

Można też to zrobić:

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

To będzie ominąć Console.WriteLine() s.

+1

Po prostu przetestowane i działa, bez konieczności użycia konsoli. Dzięki. – stybl

1

Usunięcie fabryki rejestratora nie pomoże, ponieważ jest to Console.WriteLine() (Ref: Github issue comment). Musisz wyłączyć wyjście Console.WriteLine. W metodzie głównej napisz taki kod. Zignoruje to wyjścia Console.WriteLine.

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

Nie zrobi tego. Jeśli to zrobię, nic nie zostanie wydrukowane na konsoli. Obejmuje to moje logi. Czy istnieje sposób ograniczenia tego do API? – stybl