.Net 開源異常日誌ExceptionLess搭建
阿新 • • 發佈:2018-06-18
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的裝分為兩種:
- 在github上下載release包進行安裝。
安裝環境
- Window10
- VS2017
- IIS8.5
- Java
- ElasticSearch1.7.5
- Exceptionless.3.4.2523
安裝步驟
- 解壓zip包,包含文件如圖:
-
解壓elasticsearch如圖:
- 把Exceptionless裏面的elasticsearch.prod.yml和elasticsearch.yml文件復制到elasticsearch解壓目錄bin文件夾下,如圖:
- 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運行就成功了
- 以管理員方式運行Exceptionless文件中的Start.bat批處理文件開始安裝
- 如果全部安裝成功後,會自動為你打開幾個頁面。還是先來看下目錄結構吧,如下圖所示,默認安裝Elasticsearch是5.5.2 同時安裝了kibana版本也是5.5.2
- 打開的幾個頁面如下圖所示,然後在Exceptionless的頁面,點擊註冊按鈕註冊一個賬號,然後進行登錄
- 註冊成功後,進入如下的界面,在兩個文本框輸入,組織機構名稱以及項目名稱,用來對我們的項目的異常進行分類吧
- 下面進入項目類型配置界面,在1.select your project type下拉框選擇asp.net core
- 出現下面的界面,說明配置完成,並且給出使用說明。到此Exceptionless的安裝配置已經完成。
Net Core 項目實戰演示
- 新建一個 netcore api項目
- 在程序包管理器中,選中你的項目,然後輸入“ Install-Package Exceptionless.AspNetCore”安裝nuget包吧,也可以通過其他方式安裝
-
在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(); } } }
- 代碼中使用異常,直接上代碼吧!就是在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) { } } }
- .運行起來吧。然後瀏覽器切換到exceptionless的面板進行查看吧,會自動刷新出現異常信息,如下圖 http://localhost:50000/#!/type/error/dashboard
- 點擊進入可以查看詳細信息
.Net 開源異常日誌ExceptionLess搭建