asp.net core系列 72 Exceptionless使用介紹
一.Exceptionless介紹
Exceptionless專注於.net平臺提供實時錯誤和日誌報告。主要包括:錯誤通知、智慧分組異常、詳細錯誤報告堆疊跟蹤、支援離線、UI檢視重要錯誤和確定優先順序、儀表板上的統計資訊和趨勢、對異常標記為已修復,監視迴歸、將事件標記為關鍵等。
1.1 服務端託管
對於Exceptionless有二種部署環境:
a.在Exceptionless官網建立帳號,跟著頁指導新建應用程式以及專案,官網會生成apikey,將apikey複製拿到net 對應專案中,在專案中安裝Exceptionless客戶端進行使用,日誌資料將儲存在Exceptionless官網。
b.自己搭建Exceptionless的伺服器環境,資料儲存在自己的伺服器上。對於a種方案是直接省事,但有很多限制功能(如:不能新增成員),除非掏錢成會員。所以推薦使用b方案。
5.0版本釋出資訊:https://github.com/exceptionless/Exceptionless/releases
1.2 自主託管
在Exceptionless5.0版本之前,要進行自主託管需要準備很多環境,生產環境包括.NET 4.7,Java JDK 1.8+,IIS 7.5,PowerShell 3+等環境。在Exceptionless5.新版本中官方已經準備了Docker映象部署很方便。
自主託管參考:https://github.com/exceptionless/Exceptionless/wiki/Self-Hosting
環境要求:linux或windows的Docker 18.09.0+
先下載 Exceptionless-5.0.0.zip (https://github.com/exceptionless/Exceptionless/wiki/Self-Hosting),在安裝Exceptionless自主託管之前,需要先安裝好如下:
(1) elasticsearch:5.6.16 (儲存與大資料檢索)
(2) kibana:5.6.16(UI展示)
(3) Redis
然後再修改Exceptionless下的docker-compose.yml檔案配置,修改裡面有關elasticsearch、kibana\redis 地址或埠。在docker終端使用命令:docker-compose up -d在後臺執行docker。這是自託管的推薦方法。
安裝成功後預設啟動 http://localhost:5000 進入Exceptionless登入頁面,註冊使用者,新增組織、新增專案、選擇專案型別並且記住apikey,如下所示:
下面選擇了Console and Service applications專案型別,併產生了apikey 如下所示:
接著開發成員註冊,並邀請到專案中來,如下所示:
二.專案引用nuget包說明
在.net專案中引用包:
Install-Package Exceptionless -Version 4.3.2027
如果是asp.net core,則會引用下面包
Install-Package Exceptionless.AspNetCore
Exceptionless還可以與Nlog整合,下面是NLog引用包:
Install-Package Exceptionless.NLog -Version 4.3.2027
Exceptionless集成了nlog資料:https://github.com/exceptionless/Exceptionless.Net/blob/master/samples/Exceptionless.SampleConsole/Program.cs
三.專案整合
下面控制檯程式引用nuget包:
Install-Package Exceptionless -Version 4.3.2027
using Exceptionless;
//main方法中設定 Exceptionless.ExceptionlessClient.Default.Configuration.ServerUrl = "http://localhost:5000"; Exceptionless.ExceptionlessClient.Default.Startup("aE3KwemN8QMBe5eSmGbi5j8PhlNFTgKezBazJCQO");
//異常測試提交 try { throw new Exception("測試異常"); } catch (Exception ex) { ex.ToExceptionless().Submit(); }
提交成功如下所示:
更多使用參考: https://github.com/exceptionless/Exceptionless/wiki