1. 程式人生 > >asp.net core系列 72 Exceptionless使用介紹

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