2017-08-17 9 views
0

私たちの実稼働環境では、ロードバランスのとれた.netコアWebサービスがあります。その結果、ロードバランサは、サービスがまだ稼動していることを確認するために毎秒特別な/ 。ログレベルがInfoに設定されている場合、ログファイルはこれらの繰り返し呼び出しのためにすぐに埋められます。問題のログが.netのコアフレームワークから来ているのを見ると、どのようにすべてのリクエストを除外せずにこれらのリクエストを除外できるのか分かりません。このタイプのリクエストのログの例は次のとおりです。.netの特定の要求に対するコアログのフィルタリング

info: Microsoft.AspNetCore.Hosting.Internal.WebHost[1] 
     Request starting HTTP/1.1 GET http://localhost:5555/Health 
info: Microsoft.AspNetCore.Hosting.Internal.WebHost[2] 
     Request finished in 1674.6082ms 200 

他のすべてのリクエストをフィルタリングせずにフィルタすることができますか?

答えて

0

はい、最小レベルのログを設定でき、このレベル以上のイベントのみを記録します。ログレベルの優先順位は次のとおりです。

  • トレース
  • デバッグ
  • 情報
  • 警告
  • エラー
  • 私は個人的にのみエラーと重大な問題をログに記録するErrorレベルを使用

クリティカル私はこのようにします:

Log.Logger = new LoggerConfiguration() 
       .MinimumLevel.Error() // <--- this sets the minimum level 
       .WriteTo.RollingFile(new JsonFormatter(renderMessage: true), 
        Path.Combine(env.ContentRootPath, "myLog.txt")) 
       .CreateLogger(); 
0

別のオプションは、特定のカテゴリをフィルタリングすることです。

appsettings.json:

{ 
    "Logging": { 
    "IncludeScopes": false, 
    "Debug": { 
     "LogLevel": { 
     "Default": "Warning" 
     } 
    }, 
    "Console": { 
     "LogLevel": { 
     "Microsoft.AspNetCore.Hosting.Internal.WebHost": "Warning", 
     "Default": "Info" 
     } 
    } 
    } 
} 

the docsでより多くの情報、 "ログフィルタリング" セクションを見てがあります。

関連する問題