ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 24. Logging




經常使用的診斷中間件:sql

  • UseDeveloperExceptionPage
  • UseStatusCodePages:返回 400~600 的狀態碼
  • UseExceptionHandler 自定義異常的處理器
  • UseWelcomePage:歡迎頁,網站還在開發時能夠啓用該中間件
  • UseDatabaseErrorPage

UseWelcomePage

放在管道的最前面

網站啓動以後

不管我輸入任何的地址 都會到這個頁面。由於他放在管道的最前面了

開發模式下顯示異常的頁面

這個中間件顯示400到600之間的錯誤代碼

先把上面兩個註釋掉,拋出異常看看會發生什麼

在HomeController裏面拋出個異常信息

須要把歡迎頁的中間件也去掉


頁面這裏報了個錯誤 。咱們繼續運行 。

頁面上顯示的錯誤

而後咱們再把這個中間件 啓動一下。UseDeveloperExceptionPage

這樣頁面啓動後,就能夠看到異常的詳細信息了。

這個頁面只能在開發的時候用。
瀏覽器

UseExceptionHandler

這是生成的時候用的

在HomeController裏面本身寫一個MyError的Action

改爲本身建立的Action

建立MyError的view 頁面

改爲生產環境

報錯會直接跳轉到咱們的異常頁面



 服務器

UseStatusCodePages


訪問一個不存在的,使用了這個中間件就會返回一個狀態碼和文字

若是沒有這個中間件呢?

這個頁面是瀏覽器端返回的頁面,服務器端咱們就沒有返回任何頁面

最終這些都用上
ide

UseDatabaseErrorPage

和EF的遷移有關
遷移以後有個頁面,讓你點擊應用這個遷移。函數

LOG



EventSource和DiagnosticSource 是在core裏面內置的,默認就會使用
咱們主要是使用ILogger,這裏也主要講ILogger



 網站

內置的 Log Providers:日誌

  • Console
  • Debug:VS Debug 窗口
  • EventSource:能夠作 Event Tracing
  • EventLog:將 Log 寫入 Windows 事件 Log
  • TraceSource:僅支持完整的 .NET Framework
  • Azure App Service:使用Azure的時候使用

 

Log 等級:orm

  • Trace
  • Debug
  • Information
  • Warning
  • Error
  • Critical



F12進去看源碼

core裏面默認已經添加了這幾種

若是想改變這些默認的配置


讀取配置文件的配置

這裏暫時先註釋掉


早HomeController裏面使用方法,構造函數注入進來



新建常量

上面定義的常量在這裏當作第一個參數。第二個參數就是咱們記入的日誌信息


控制檯看到輸出的日誌信息
EventID是1000 日誌信息在下面

主要的三個:分類、eventID、日誌信息
日誌內傳入參數

也能夠這麼去寫

推薦使用這種寫法

看起來兩種寫法是同樣的。可是對於其餘Provider來講。這個id參數能夠單獨提出來,若是寫在裏面的話就提不出來。
視頻

配置

默認的配置

Debug以上的級別,日誌都會記錄下來

具體的能夠看文檔:
server

第三方log



core後來用的比較多的是EImah,這裏也就說下EImah
nuget進行安裝

輸出到控制檯還須要添加這個媒介

還有比較流行的sql server
這個不引入
這個不引入
還有這種文件的形式,把File也引入

配置方法,視頻中沒有錄製

MinimumLevel.Debug()最小記錄級別是Debug

MinimumLevel.Override("Microsoft", LogEventLevel.Information)若是遇到Microsoft的命名空間,記錄最小級別是InfoMation

.Enrich.FromLogContext()經過上下文能夠記錄一些其餘信息


視頻裏彈幕仍是說NLog用的比較多一點


添加了兩個sinks一個是Console一個是輸出文件File

寫到文件裏文件名叫log.txt。天天生成一個文件

這裏能夠改爲每分鐘生成一個文件

最後建立這個log:

.CreateLogger()
而後在這裏使用這個Serilog


運行程序,控制檯文字顏色已經發生變化

根目錄有文件生成:


修改爲生成到文件夾內:logs文件夾內

再次運行

相關文章
相關標籤/搜索