2017-05-25 14 views
9

私のアプリケーションの一部として、.Net Core APIプロジェクトがあります。このプロジェクトが独自のプロセスとして実行されるほとんどの場合とは異なり、私はAPIを1つのプロセスでスレッド内で実行します。私のプロジェクトでは、私のニーズに合わせてカスタムロギングシステムを実装しました。しかし、私はちょっとした問題に遭遇しました。私は私のプログラムを実行するたびに、APIを開始すると、このメッセージがコンソールに出力されます。そのために必要がないようAsp.Net Core APIが起動完了メッセージを無効にする

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君は、私が話している内容を正確に把握して、以下のスクリーンショットを持っている:

Screenshot of message

私はすでにappsettings.jsonに「なし」にConfigureServicesからILoggerFactoryを削除(MVCのために他のすべてのログ記録を無効にし、すべてのロギングを設定しています)。

このメッセージを無効にする/抑制する方法を教えてください。

+0

出力を/ dev/nullにパイプします。 –

答えて

1

また、これを行うことができます:

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

これはConsole.WriteLine() Sをバイパスします。

+1

コンソールを使用できなくすることなく、テストして動作します。ありがとう。 – stybl

1

Console.WriteLine()(Ref:Github issue comment)であるため、ロガーファクトリを削除しても問題ありません。 Console.WriteLine出力を抑制する必要があります。 Mainメソッドでは、このようなコードを記述します。これにより、Console.WriteLineの出力は無視されます。

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

これは行いません。私がこれを行うと、何もコンソールに何も印刷されません。これには私のログメッセージが含まれます。これをAPIに限定する方法はありますか? – stybl

関連する問題