您好,登錄后才能下訂單哦!
ASP.NET Core 中如何使用Diagnostics中間件,相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。
默認創(chuàng)建好的項目會自動在Startup中Configure 方法加上這一段
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
app.UseBrowserLink();
}
else{
app.UseExceptionHandler("/Home/Error");
}
這就是異常信息的報告以及處理。
在開發(fā)環(huán)境下會顯示詳細的錯誤信息 app.UseDeveloperExceptionPage();,在非開發(fā)環(huán)境,跳轉(zhuǎn)至 app.UseExceptionHandler("/Home/Error"); /Home/Error頁。
如果你想一直展示錯誤信息就將app.UseDeveloperExceptionPage(); 放置在if 外面?;蛘咴诎l(fā)布之后,將對應的系統(tǒng)環(huán)境調(diào)成Development 以顯示錯誤信息。
項目中使用了EF Core ??梢蕴砑?app.UseDatabaseErrorPage(); 以顯示EF Core 相關(guān)信息。
在Startup.cs中的Configure 方法加入:app.UseWelcomePage();
啟動程序就會顯示如下頁面。有擴展方法,可以指定對應的頁面。
默認程序中404 或者500 等相關(guān)錯誤,并不會展示頁面,只會返回對應的代碼。
同樣在Startup.cs中的Configure 方法加入:app.UseStatusCodePages();
訪問不存在的頁面會顯示如下。
下面是簡單的自定義錯誤信息
app.UseStatusCodePages("text/plain", "Error, status code: {0} \r LineZero");
還可以使用
app.UseStatusCodePagesWithRedirects("~/errors/{0}"); // 相對根路徑
app.UseStatusCodePagesWithRedirects("/base/errors/{0}"); // 絕對路徑
也可以使用
app.UseStatusCodePagesWithReExecute("/error/http{0}");
上面兩者的區(qū)別一個是跳轉(zhuǎn),一個是執(zhí)行。
日志查看,也是Diagnostics 中間件的一個功能。用起來也比較方便。
需要額外添加一個 Microsoft.AspNetCore.Diagnostics.Elm 包。
安裝好包打開Startup.cs ,首先在 ConfigureServices 方法加入服務。
services.AddElm(elmOptions => { elmOptions.Filter = (loggerName, loglevel) => loglevel == LogLevel.Debug; });
篩選日志級別為Debug
然后再Configure 方法加入
app.UseElmPage();
app.UseElmCapture();
app.UseElmPage(); 為指定日志顯示頁,app.UseElmCapture(); 記錄日志。
運行程序訪問 http://localhost:5000/Elm ,就可以查看一些信息記錄。
看完上述內(nèi)容,你們掌握ASP.NET Core 中如何使用Diagnostics中間件的方法了嗎?如果還想學到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。