2017-01-10 13 views
2

私は基本的にデータベースのストアプロシージャを呼び出すコンソールアプリケーションを構築しています。これは正常に動作しますが、今ではこの小さな問題 - エラー処理 - に出くわしました。Serilogを使用した自動エラーログ

私はSerilogを使用してテキストファイルにエラーを記録していますが、これで問題になるのはtry-catchどこでも試してください。もちろん、小さなソフトウェアの場合、try-catchを使用して置くのは苦痛ではありませんが、大きなソフトウェアを構築する場合、エラー処理コードを入れることを忘れることがあります。だから私は、デフォルトとして1つがあるときはいつでも、エラーを記録して印刷するようSerilogに指示する方法があるかどうか疑問に思っていましたか?

どのようなアイデアや解決策をいただければ幸いです。

おかげ

+0

「System.AppDomai n.CurrentDomain.UnhandledException'とエラーをハンドラに記録する - [この質問を参照](http://stackoverflow.com/questions/3133199/net-global-exception-handler-in-console-application) – stuartd

+1

@stuartd Ah申し訳ありませんが、私はASP.NET COREを使用しています。彼らがAppDomainを取り出したようです:( – Danny

+0

https://docs.microsoft.com/en-us/aspnet/core/fundamentals/error-handlingにはいくつかのオプションがあります – stuartd

答えて

-1

あなたはasp.netのコアアプリケーション全体のすべての例外を捕捉することerrorとしてminimumLevelを指定することができます。 Startup.csで

、あなたはthis-

 Log.Logger = new LoggerConfiguration() 
      .MinimumLevel.Error() 
      .WriteTo.RollingFile(Path.Combine(env.ContentRootPath, "Serilog-{Date}.txt")) 
      .CreateLogger(); 

それともthis-

"Serilog": { 
    "Using": [ "Serilog.Sinks.RollingFile" ], 
    "MinimumLevel": { 
     "Default": "Error", 
     ...... 
     ...... 

のようなのAppSettingで最小レベルを指定し、設定を読んで、その後ベースの設定を使用している場合などの最小エラーレベルを追加このようなStartup.csのappsetting.jsonから -

 Log.Logger = new LoggerConfiguration() 
      .ReadFrom.Configuration(Configuration) 
      .CreateLogger(); 
関連する問題