1. 程式人生 > >.Net 開源異常日誌ExceptionLess搭建

.Net 開源異常日誌ExceptionLess搭建

nta 分類 cor sta cse java環境 安裝jdk this enum

ExceptionLess是一款免費開源的分布式日誌收集框架,DotNet的幾乎所有類型的程序都可以支持,並且還提供了接口,可以很方便的在js中進行日誌的推送。


參考:

http://www.cnblogs.com/uptothesky/p/5864863.html
http://www.cnblogs.com/savorboard/p/exceptionless.html
http://mp.weixin.qq.com/s?__biz=MzAwNTMxMzg1MA==&mid=2654067937&idx=1&sn=01e502d9ef5cf77817aa80db6903923d&scene=0#wechat_redirect


安裝說明

ExceptionLess的裝分為兩種:

  1. 在github上下載release包進行安裝。

安裝環境

  1. Window10
  2. VS2017
  3. IIS8.5
  4. Java
  5. ElasticSearch1.7.5
  6. Exceptionless.3.4.2523

  

安裝步驟

  1. 解壓zip包,包含文件如圖:技術分享圖片
  2. 解壓elasticsearch如圖:技術分享圖片

  3. 把Exceptionless裏面的elasticsearch.prod.yml和elasticsearch.yml文件復制到elasticsearch解壓目錄bin文件夾下,如圖:技術分享圖片

  4. Java JDK 1.8+ 安裝完後還需配置下Java環境,系統變量添加:JAVA_HOME 對應 C:\Program Files\Java\jdk1.8.0_102 是安裝jdk的目錄,用戶變量Path 中添加 %JAVA_HOME%\bin; 配置完成後打開cmd,運行
    java -version 如果報錯的話有很多種可能,搜索一下會有解決方案,我的就是在C:\Windows\System32 目錄下把java.exe改名成javaa.exe,再次cmd運行就成功了
  5. 以管理員方式運行Exceptionless文件中的Start.bat批處理文件開始安裝 技術分享圖片

  6. 如果全部安裝成功後,會自動為你打開幾個頁面。還是先來看下目錄結構吧,如下圖所示,默認安裝Elasticsearch是5.5.2 同時安裝了kibana版本也是5.5.2技術分享圖片

  7. 打開的幾個頁面如下圖所示,然後在Exceptionless的頁面,點擊註冊按鈕註冊一個賬號,然後進行登錄技術分享圖片

  8. 註冊成功後,進入如下的界面,在兩個文本框輸入,組織機構名稱以及項目名稱,用來對我們的項目的異常進行分類吧技術分享圖片

  9. 下面進入項目類型配置界面,在1.select your project type下拉框選擇asp.net core技術分享圖片

  10. 出現下面的界面,說明配置完成,並且給出使用說明。到此Exceptionless的安裝配置已經完成。

Net Core 項目實戰演示

  1. 新建一個 netcore api項目
  2. 在程序包管理器中,選中你的項目,然後輸入“ Install-Package Exceptionless.AspNetCore”安裝nuget包吧,也可以通過其他方式安裝技術分享圖片技術分享圖片

  3. 在startup.cs中添加 引用:Startup全部代碼:

    using Exceptionless;
    using Microsoft.AspNetCore.Builder;
    using Microsoft.AspNetCore.Hosting;
    using Microsoft.Extensions.Configuration;
    using Microsoft.Extensions.DependencyInjection;
    
    namespace WebApplication1
    {
        public class Startup
        {
            public Startup(IConfiguration configuration)
            {
                Configuration = configuration;
            }
    
            public IConfiguration Configuration { get; }
    
            // This method gets called by the runtime. Use this method to add services to the container.
            public void ConfigureServices(IServiceCollection services)
            {
                services.AddMvc();
            }
            //public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
            //{
            //    app.UseExceptionless();
            //    app.UseExceptionless("eUUE3Tf5EqGdpyBiD1I3BdIgT9cGxv7jSzmSUdLt");
            //    //app.UseExceptionless("15mT6MDBAxaVOQ4b8v6BxikgACwMr6Y3StSgs6B4");
            //    app.UseStaticFiles();
            //    app.UseMvc();
            //}
            // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
            public void Configure(IApplicationBuilder app, IHostingEnvironment env)
            {
                if (env.IsDevelopment())
                {
                    app.UseDeveloperExceptionPage();
                }
                ExceptionlessClient.Default.Configuration.ApiKey = "eUUE3Tf5EqGdpyBiD1I3BdIgTGxv7jSzmSUdLt";
                ExceptionlessClient.Default.Configuration.ServerUrl = "http://localhost:50000";
                app.UseMvc();
            }
        }
    }

  4. 代碼中使用異常,直接上代碼吧!就是在ValuesController中修改下get方法進行下測試,代碼很簡單
    using Exceptionless;
    using Microsoft.AspNetCore.Mvc;
    using System;
    using System.Collections.Generic;
    
    namespace WebApplication1.Controllers
    {
        [Route("api/[controller]")]
        public class ValuesController : Controller
        {
            // GET api/values
            [HttpGet]
            public IEnumerable<string> Get()
            {
                try
                {
                    throw new Exception("測試日誌演示");
                }
                catch (Exception ex)
                {
                    ex.ToExceptionless().Submit();
                }
                try
                {
                    throw new ApplicationException("控制器——ValuesController:" + Guid.NewGuid().ToString());
                }
                catch (Exception ex)
                {
                    ex.ToExceptionless().Submit();
                }
               
                return new string[] { "value1", "value2" };
            }
    
            // GET api/values/5
            [HttpGet("{id}")]
            public string Get(int id)
            {
                return "value";
            }
    
            // POST api/values
            [HttpPost]
            public void Post([FromBody]string value)
            {
            }
    
            // PUT api/values/5
            [HttpPut("{id}")]
            public void Put(int id, [FromBody]string value)
            {
            }
    
            // DELETE api/values/5
            [HttpDelete("{id}")]
            public void Delete(int id)
            {
            }
        }
    }

  5. .運行起來吧。然後瀏覽器切換到exceptionless的面板進行查看吧,會自動刷新出現異常信息,如下圖 http://localhost:50000/#!/type/error/dashboard技術分享圖片

  6. 點擊進入可以查看詳細信息技術分享圖片

.Net 開源異常日誌ExceptionLess搭建