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 FilesJavajdk1.8.0_102 是安装jdk的目录,用户变量Path 中添加 %JAVA_HOME%in; 配置完成后打开cmd,运行
java -version 如果报错的话有很多种可能,搜索一下会有解决方案,我的就是在C:WindowsSystem32 目录下把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
- 点击进入可以查看详细信息