.Net 开源异常日志ExceptionLess搭建

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. 点击进入可以查看详细信息

猜你喜欢

转载自www.cnblogs.com/aaaaq/p/9196123.html