2. Exceptionless Client

Exceptionless Client 是負責收集本地端事件並向 Log Server 推送,目前提供下面幾種平台的安裝插件:

  • .NET
    • Console and Service applications
    • ASP.NET Core
    • ASP.NET MVC
    • ASP.NET Web API
    • ASP.NET Web Forms
    • Windows Presentation Foundation(WPF)
    • Nancy
  • JavaScript
    • Browser application
    • Node.js

產生 API Key

  1. 開啟 Web 介面並登入(需先向本地端 Server 註冊),點選主選單中 Admin --> Projects --> Add New Project

  2. 建立專案後點選 Manage Project --> API Keys 複製 API key

安裝 Client plug-in

開啟 Visual Studio,在 NuGet 套件管理員視窗中搜尋 "Exceptionless" 關鍵字,選取對應平台的套件並下載安裝

Exceptionless Client for .NET MVC

  1. 下載安裝 Exceptionless.Mvc 套件至專案

  2. 修改 Web.config,找到以下區段並置換 apiKey 及 serverUrl 參數

    <exceptionless apiKey="API_KEY" serverUrl="BASE_URL" />
    
  3. 前項設定完成後 Exceptionless 即會 log 所有 unhandled exception

  4. 透過 Exceptionless API 方法手動傳送 log,一些簡單範例:

    try 
    {
         throw new ApplicationException(Guid.NewGuid().ToString());
    } 
    catch (Exception ex)
    {
         ex.ToExceptionless().Submit();
    }
    
    try 
    {
       throw new ApplicationException("some error occured");
    } 
    catch (Exception ex) 
    {
       ex.ToExceptionless()
           // 為事件設定關聯 ID 
           .SetReferenceId(Guid.NewGuid().ToString("N"))
           // 加入物件資訊並排除特定欄位
           .AddObject(order, "Order", excludedPropertyNames: new [] { "CreditCardNumber" }, maxDepth: 2)
           // 加入自訂屬性
           .SetProperty("Quote", 123)
           // 加入標籤
           .AddTags("Order")
           // 標記為Critical錯誤
           .MarkAsCritical()
           // 設定位置座標
           .SetGeo(43.595089, -88.444602)
           // 設定 User Identity
           .SetUserIdentity(user.Id, user.FullName)
           // 設定 User 相關資訊
           .SetUserDescription(user.EmailAddress, "I tried creating an order from my saved quote.")
           // 發送事件
           .Submit();
    }
    
  5. 除了傳送 exception,我們也可以傳送不同類型的事件給 Exceptionless

    using Exceptionless;
    
    // 發送 log
    ExceptionlessClient.Default.SubmitLog("test log");
    
    // 發送 log 並指定嚴重性層級及 tag
    ExceptionlessClient.Default.SubmitLog(typeof(TestController).FullName, "test log", "Info");
    ExceptionlessClient.Default.CreateLog(typeof(TestController).FullName, "test log with tags", "Warn").AddTags("MyTag").Submit();
    
    // 紀錄 Feature Usages
    ExceptionlessClient.Default.SubmitFeatureUsage("MyFeature");
    ExceptionlessClient.Default.CreateFeatureUsage("MyFeature").AddTags("MyTag").Submit();
    
    // 紀錄 Broken link error
    ExceptionlessClient.Default.SubmitNotFound("/missedpage");
    ExceptionlessClient.Default.CreateNotFound("/missedpage").AddTags("MyTag").Submit();
    
    // 紀錄自訂 Event
    ExceptionlessClient.Default.SubmitEvent(new Event { Message = "Low Fuel", Type = "racecar", Source = "Fuel System" });
    

Exceptionless Client for .NET Web API

  1. 下載安裝 Exceptionless.WebApi 套件至專案

  2. 設定與使用方法與 MVC 的 Client 都相同,唯一的差別是必須在專案啟動階段呼叫以下方法設定註冊事件

    ExceptionlessClient.Default.RegisterWebApi(HttpConfiguration config)
    

Exceptionless Client for NLog

  1. 下載安裝 NLog 及 Exceptionless.NLog 套件至專案

  2. 在專案下建立 NLog.config 設定檔並增加一個 Exceptionless target,當 NLog 紀錄事件訊息時,會自動傳送一份副本到 Exceptionless上。以下是設定參考範例:

    <?xml version="1.0" encoding="utf-8" ?>
    <nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <extensions>
     <add assembly="Exceptionless.NLog" />
    </extensions>
    <targets async="true">
     <target name="exceptionless" xsi:type="Exceptionless" apiKey="API_KEY" serverUrl="BASE_URL">
       <field name="host" layout="${machinename}" />
       <field name="identity" layout="${identity}" />
       <field name="windows-identity" layout="${windows-identity:userName=True:domain=False}" />
       <field name="process" layout="${processname}" />
     </target>
    </targets>
    <rules>
     <logger name="*" minlevel="Info" writeTo="exceptionless" />
    </rules>
    </nlog>
    

results matching ""

    No results matching ""