最近在学习张善友老师的NanoFabric 框架的时了解到Exceptionless : https://exceptionless.com/ !因此学习了一下这个开源框架!下面对Exceptionless的学习做下笔记!
Exceptionless是什么?能做什么呢?
“Exceptionless”这个词的定义是:没有异常。Exceptionless可以为您的ASP.NET、Web API、WebFrm、WPF、控制台和MVC应用程序提供实时错误、特性和日志报告。它将收集的信息组织成简单的可操作的数据,这些数据将帮助你很方便的查看异常信息。还有最重要的是,它是开源的!
Exceptionless的使用方式有哪些?
1.官网创建帐号,并新建应用程序以及项目,然后生成apikey(数据存储在Exceptionless)
2.自己搭建Exceptionless的环境,部署在本地(数据存储在本地)
Exceptionless的运行环境有哪些要求?需要安装哪些软件,进行什么配置呢?
- .NET 4.6.1 (安装了.net core 或者vs2017的话环境应该都没问题,不需要额外安装)
- Java JDK 1.8+(如果使用windows系统的话需要配置环境变量,这个使用过java的人应该都知道吧!相信对于你来说应该不是难事).下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
- IIS Express 8+(win 7以上环境应该都没问题,不需要额外安装)
- PowerShell 3+(win 7以上环境应该都没问题,不需要额外安装)
- 这里分win7(管理员身份运行cmd ,然后复制下面这条命令,按回车就行了
powershell Set-ExecutionPolicy Unrestricted
) 以及 win10(管理员身份运行powershell,然后执行powershell Set-ExecutionPolicy Unrestricted
) - Elasticsearch 5.6 官方推荐这个版本,(当然你也可以不进行安装,因为后面会教你如何自动安装这个软件)需要在历史版本中找 ,下载地址:https://www.elastic.co/downloads/past-releases
Exceptionless下载以及配置
1.打包下载地址:https://github.com/exceptionless/Exceptionless/releases 如下图所示进行下载就可以了!,别看只有15M有的人下载可能需要半个小时,别问为什么,因为~~~~~
2.下载完成之后,右键解压
3.看到如下的文件目录结构,有几点需要说明,如果你比较懒,嫌部署到iis比较麻烦,安装Elasticsearch也比较麻烦,那么,你可以双击“Start.bat”这个脚本,它会自动帮你安装Elasticsearch,以及(当然,生产环境,还是建议自己搭建Elasticsearch的好)
4.如果出现下图所示,那么你就耐心的等等就行了,运行结束后会自动为您打开Exceptionless的管理页面
,如果不幸,cmd里面出现红色字体,而且一闪就自动退出的话,那就执行下powershell Set-ExecutionPolicy Unrestricted 这个命令,然后再双击“Start.bat”这个脚本运行吧!
- 这里分win7(管理员身份运行cmd ,然后复制下面这条命令,按回车就行了
powershell Set-ExecutionPolicy Unrestricted
) 以及 win10(管理员身份运行powershell,然后执行powershell Set-ExecutionPolicy Unrestricted
)
5.如果全部安装成功后,会自动为你打开几个页面。还是先来看下目录结构吧,如下图所示,默认安装Elasticsearch是5.5.2 同时安装了kibana版本也是5.5.2
6.打开的几个页面如下图所示,然后在Exceptionless的页面,点击注册按钮注册一个账号,然后进行登录
7.注册成功后,进入如下的界面,在两个文本框输入,组织机构名称以及项目名称,用来对我们的项目的异常进行分类吧
8.下面进入项目类型配置界面,在1.select your project type下拉框选择asp.net core
9.出现下面的界面,说明配置完成,并且给出使用说明。到此Exceptionless的安装配置已经完成。
接下来我们通过一个实例项目进行使用说明吧
1.新建一个 netcore api项目,这一步应该难不倒你吧,我就不上图了。
2.在程序包管理器中,选中你的项目,然后输入“ Install-Package Exceptionless.AspNetCore”安装nuget包吧,当然也可以通过其他方式安装,就不介绍了
3.在startup.cs中添加 引用
<pre class="brush:csharp;gutter:true;" style="color: rgb(0, 0, 0); font-family: "Courier New"; font-size: 12px; margin: 5px 8px; padding: 5px;">using Exceptionless;</pre>
然后在Configure方法中添加Exceptionless管道信息
<pre class="brush:csharp;gutter:true;" style="color: rgb(0, 0, 0); font-family: "Courier New"; font-size: 12px; margin: 5px 8px; padding: 5px;"> ExceptionlessClient.Default.Configuration.ApiKey = Configuration.GetSection("Exceptionless:ApiKey").Value;
ExceptionlessClient.Default.Configuration.ServerUrl = Configuration.GetSection("Exceptionless:ServerUrl").Value;
app.UseExceptionless();
</pre>
然后在appsettings.json中添加apikey以及serverurl的配置
<pre class="brush:csharp;gutter:true;" style="color: rgb(0, 0, 0); font-family: "Courier New"; font-size: 12px; margin: 5px 8px; padding: 5px;"> "Exceptionless": {
"ApiKey": "OvzcKg8V7bPcWU8yAYBVe6uCEKIAQm3xfEzW5yxp",
"ServerUrl": "http://localhost:50000"
}
</pre>
好了,exceptionless的配置以及完成,接下来就是代码中使用了!
4.代码中使用异常,直接上代码吧!就是在ValuesController中修改下get方法进行下测试,代码很简单
<pre class="brush:csharp;gutter:true;" style="color: rgb(0, 0, 0); font-family: "Courier New"; font-size: 12px; margin: 5px 8px; padding: 5px;"> // GET api/values
[HttpGet]
public ActionResult Get()
{
try
{
throw new Exception("ExceptionDemo 的异常");
}
catch (Exception ex)
{
ex.ToExceptionless().Submit();
}
return Ok();
}
</pre>
5.运行起来吧。然后浏览器切换到exceptionless的面板进行查看吧,会自动刷新出现异常信息,如下图 http://localhost:50000/#!/project/5b2663e4e6c0b51dd015bdab/dashboard
6.点击进入可以查看详细信息
总结:
本文从Exceptionless是什么入手,然后介绍了Exceptionless的安装环境以及要求,接下来通过图文详细的介绍了Exceptionless的安装以及配置。最后通过一个Demo演示了如何在代码中使用Exceptionless,当然只是简单地一些使用!今天的关于asp.Net Core免费开源分布式异常日志收集框架Exceptionless安装配置以及简单使用图文教程的介绍就到这里了!