2017-05-25 51 views
9

Uygulamamın bir parçası olarak bir .Net Core API projem var. Bu projenin kendi süreci olarak çalışacağı çoğu durumdan farklı olarak, API'yi başkalarının yanı sıra tek bir işlemde bir iş parçacığında çalıştırıyorum. Ayrıca projem için ihtiyaçlarıma uygun özel bir kayıt sistemi uyguladık. Ancak, hafif bir problemle karşılaştım.Asp.Net Core API devre dışı bırakma tamamlandı iletisini tamamla

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

bunun için gerek yoktur bu mesajı iptal etmek istiyorsanız ve bu clutters aksi iyi organize: API başladıktan sonra bu benim programı çalıştırmak her zaman, bu mesaj konsola yazdırılır konsol günlüğü.

Screenshot of message

Zaten bütün appsettings.json yılında "yok" olarak giriş ConfigureServices den ILoggerFactory kaldırıldı mvc (diğer tüm günlüğü devre dışı ve belirledik: öylesine neden bahsettiğimi çok iyi biliyorsun altında bir ekran görüntüsü var).

Bu iletiyi devre dışı bırakmak/bastırmak için nasıl giderim?

+0

Çıkışı/dev/null değerine getirin –

cevap

1

Ayrıca yapabilirsiniz:

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

Bu Console.WriteLine() s atlayacaktır.

+1

Sadece test edilmiş ve konsolu kullanılamaz hale getirmeden çalışır. Teşekkürler. – stybl

1

Kaydedici fabrika çıkarıldığında, Console.WriteLine() (Ref: Github issue comment) olduğu için yardımcı olmayacaktır. Console.WriteLine çıktılarını bastırmanız gerekir. Ana yöntemde, böyle bir kod yazın. Bu Console.WriteLine çıktılarını göz ardı eder.

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

Bunu yapmazsınız. Bunu yaparsam, konsolda hiç bir şey basılmaz. Bu benim günlük mesajlarımı içerir. Bunu API'ye sınırlamanın bir yolu var mı? – stybl