經常使用的診斷中間件:sql
放在管道的最前面
網站啓動以後
不管我輸入任何的地址 都會到這個頁面。由於他放在管道的最前面了
開發模式下顯示異常的頁面
這個中間件顯示400到600之間的錯誤代碼
先把上面兩個註釋掉,拋出異常看看會發生什麼
在HomeController裏面拋出個異常信息
須要把歡迎頁的中間件也去掉
頁面這裏報了個錯誤 。咱們繼續運行 。
頁面上顯示的錯誤
而後咱們再把這個中間件 啓動一下。UseDeveloperExceptionPage
這樣頁面啓動後,就能夠看到異常的詳細信息了。
這個頁面只能在開發的時候用。
瀏覽器
這是生成的時候用的
在HomeController裏面本身寫一個MyError的Action
改爲本身建立的Action
建立MyError的view 頁面
改爲生產環境
報錯會直接跳轉到咱們的異常頁面
服務器
訪問一個不存在的,使用了這個中間件就會返回一個狀態碼和文字
若是沒有這個中間件呢?
這個頁面是瀏覽器端返回的頁面,服務器端咱們就沒有返回任何頁面
最終這些都用上
ide
和EF的遷移有關
遷移以後有個頁面,讓你點擊應用這個遷移。函數
EventSource和DiagnosticSource 是在core裏面內置的,默認就會使用
咱們主要是使用ILogger,這裏也主要講ILogger
網站
內置的 Log Providers:日誌
Log 等級:orm
‘
F12進去看源碼
core裏面默認已經添加了這幾種
若是想改變這些默認的配置
讀取配置文件的配置
這裏暫時先註釋掉
早HomeController裏面使用方法,構造函數注入進來
新建常量
上面定義的常量在這裏當作第一個參數。第二個參數就是咱們記入的日誌信息
控制檯看到輸出的日誌信息
EventID是1000 日誌信息在下面
主要的三個:分類、eventID、日誌信息
日誌內傳入參數
也能夠這麼去寫
推薦使用這種寫法
看起來兩種寫法是同樣的。可是對於其餘Provider來講。這個id參數能夠單獨提出來,若是寫在裏面的話就提不出來。
視頻
默認的配置
Debug以上的級別,日誌都會記錄下來
具體的能夠看文檔:
server
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文件夾內
再次運行