zoukankan      html  css  js  c++  java
  • .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 FilesJavajdk1.8.0_102 是安装jdk的目录,用户变量Path 中添加 %JAVA_HOME%in; 配置完成后打开cmd,运行
      java -version 如果报错的话有很多种可能,搜索一下会有解决方案,我的就是在C:WindowsSystem32 目录下把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. 点击进入可以查看详细信息
  • 相关阅读:
    org.apache.poi.ss.usermodel 类操作excel数据遗漏
    小强的HTML5移动开发之路(13)——HTML5中的全局属性
    小强的HTML5移动开发之路(12)——从一个多媒体标签说起
    我们是怎样将网站加载时间减少 24% 的?
    CSS书写位置
    彻底理解浏览器缓存机制
    css的repaint和reflow
    CSS Reset浏览器样式重置
    专业Web设计师应该避免的6个关键错误
    网站服务器的选择
  • 原文地址:https://www.cnblogs.com/aaaaq/p/9196123.html
Copyright © 2011-2022 走看看