2017-08-17 92 views
0

在我們的生產環境中,我們有一個負載平衡的.net核心Web服務,因此負載平衡器每秒調用一次特殊/健康URL來檢查服務是否仍然運行。當日志級別設置爲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,看 「日誌過濾」 部分。

相關問題