1. 程式人生 > >異常日誌框架Exceptionless結合.NET Core(本地部署)

異常日誌框架Exceptionless結合.NET Core(本地部署)

一、前言


1、分散式異常日誌收集框架Exceptionless是開源的工具,根據官方給出的說明: Exceptionless可以為您的ASP.NET、Web API、WebFrm、WPF、控制檯和MVC應用程式提供實時錯誤、特性和日誌報告。它將收集的資訊組織成簡單的可操作的資料,這些資料將幫助你很方便的檢視異常資訊。

2、Exceptionless提供兩種使用方式,一種是 官網建立賬號;一種是自己搭建本地專案。官網上建立賬號的操作方式可以參考github上的官方wiki。此處主要介紹本地部署。

 

閱讀目錄

  • 前言
  • 環境要求
  • 部署Exceptionless
  • .NET Core結合Exceptionless
  • 總結

二、環境要求


根據Exceptionless 給出的環境要求如下:

測試環境:

  • 作業系統windows
  • .NET 4.6.1
  • JAVA JDK1.8+
  • IIS Express 7.5+(win7以上系統都沒有問題)
  • Elasticsearch 5.x

 

生產環境:

  • 作業系統windows或Linux
  • .NET 4.7
  • JAVA JDK1.8+
  • IIS Express 7.5+(win7以上系統都沒有問題)
  • Elasticsearch 5.x(部署在Linux上(強烈建議),並且是多節點執行)
  • Redis 3.0+(可選,部署在Linux上(強烈建議))

 

三、部署Exceptionless


1、配置JAVA JDK 1.8

說明:為什麼需要安裝JAVA JDK呢?由於es需要依賴此環境。

第一步:從官網上下載JDK  windows 包

地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

第二步:安裝JDK後配置windows環境變數

設定系統變數新增java jdk的安裝目錄。

 

在使用者變數中新增 JAVA_HOME的系統變數路徑。

 

 

配置結束。檢視JAVA是否安裝成功。提示如下:即代表安裝成功。

 

 2、部署Exceptionless

 Exceptionless 下載地址:https://github.com/exceptionless/Exceptionless/releases

 下載後解壓出來:把wwwroot部署在IIS上

此處專案的埠可自己配置,預設是50000。

如需自己配置需要修改一下幾個地方:

第一:修改web.config 中的BaseURL 中的埠。

第二:修改app.config.*.js檔案中的 BASE_URL 埠。

第三:IIS上埠需要設定為自己的埠。

 

3、一鍵安裝 es

雙擊開啟 Start.bat,這將自動啟動Elasticsearch,IIS Express和預設瀏覽器到Exceptionless登入頁面。

注:如果出現錯誤,請確保java 環境安裝完成。

 

安裝結束當前目錄下會出現es和kibana,以及自動開啟 Exceptionless 專案

 

4、註冊本地賬號Exceptionless

第一步:註冊賬號

第二步:註冊完後即可進入到主頁面。建立一個組織和專案名(每個專案都有對應唯一的apikey)

第三步:選擇專案多對應的型別。選擇完後會出現對應的安裝提示。

 

  

 

四、.NET Core結合Exceptionless


1、新建一個.NET Core專案

引入nuget包: 

 

2、配置appsettings.json

此處的ApiKey在 Exceptionless中所建立專案獲取,正是根據這個我們才能把專案匹配到exceptionless中

"Exceptionless": {
    "ApiKey": "aW6nxAsLNE5JcFthRbjbh5Ot2iFk4MgrcZtC35Ut",
    "ServerUrl": "http://localhost:50000"
  }

 

3、配置Startup.cs

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            ExceptionlessClient.Default.Configuration.ApiKey = Configuration.GetSection("Exceptionless:ApiKey").Value;
            ExceptionlessClient.Default.Configuration.ServerUrl = Configuration.GetSection("Exceptionless:ServerUrl").Value;
            app.UseExceptionless();

            app.UseMvc();
        }

 

4、Controller 控制器新增測試程式碼異常

[Route("api/[controller]")]
    public class ValuesController : Controller
    {
        [HttpGet]
        public ActionResult Get()
        {
            try
            {
                throw new Exception("LouieGuo測試專案的異常");
            }
            catch (Exception ex)
            {
                ex.ToExceptionless().Submit(); //這個很重要
            }
            return Ok();
        }
    }

 

5、執行專案,然後開啟Exceptionless Dashboard

可以看到 已經有錯誤資訊顯示了。

 

 

五、總結


此文配置只是測試,生產環境請使用自己部署的es和redis等。希望能幫助到你。

 

參考資料:

官網:https://exceptionless.com/

github:https://github.com/exceptionless/Exceptionless/wiki/Self-Hosting

KAnts:https://www.cnblogs.com/ants/p/8580890.html

依樂祝:https://www.cnblogs.com/yilezhu/p/9193723.html

uptothesky:http://www.cnblogs.com/uptothesky/p/5864863.html

 

asp.net core 交流群:787464275 歡迎加群交流
如果您認為這篇文章還不錯或者有所收穫,您可以點選右下角的【推薦】按鈕精神支援,因為這種支援是我繼續寫作,分享的最大動力!

作者:LouieGuo
宣告:原創部落格請在轉載時保留原文連結或者在文章開頭加上本人部落格地址,如發現錯誤,歡迎批評指正。凡是轉載於本人的文章,不能設定打賞功能,如有特殊需求請與本人聯絡!

微信公眾號:歡迎關注                                                 QQ技術交流群: 歡迎加群