代码改变世界

开源日志收集Exceptionless简单使用

2018-06-07 18:30  柿子贵  阅读(3521)  评论(3编辑  收藏  举报

这两天在研究一个开源的日志收集工具Exceptionless

官网地址:https://exceptionless.com/
GitHub地址:https://github.com/exceptionless/Exceptionless

官网为我们提供了两种使用方式。

一、在官网注册账号后即可快速使用(不用关心日志收集环境的搭建,专注自己代码逻辑就好),唯一不好的地方就是你系统中的所有日志信息都会被上传至官网服务中了。

二、下载官网为我们提供的Releases版(https://github.com/exceptionless/Exceptionless/releases)后在自己的服务器中搭建私有环境。

我自己就在本地机器试着搭建了环境。网站也有很多关于本地部署的贴子,不过在搭建过程中还是遇到了好些问题。好在最后都顺利解决了,所以想记录下自己部署过程中遇到的问题及其解决方法。

下面是部署的过程:

要用Exceptionless还有一些前置工作要做,如下图截取的是https://www.cnblogs.com/akaxb/p/7207827.html

我的机器装了VS2017和java jdk 1.8 所以对于这些就不做过多截图了,可自行搜索。

接下来我们从github下载releases版的压缩包

解压出来的文件夹只包含下面几个文件

右击Start.bat文件以管理员身份运行时可能会出现以下错

这是powershell认为执行的*.psl可能存在风险,被阻止了。我们只要以管理员身份运行powershell,执行下图红框中的命令

然后再执行Start.bat文件,如下图

都执行好之后会再自动执行Start-Website.ps1然后浏览器会自动打开如下图

这时可以点signup注册个账号并登录

到此算是基本完成了。解压的文件夹中多出三个文件夹

一开始我们是点Start.bat才运行起来的,以后总不能每次都点这bat文件吧

这时我们可以在IIS中新建一个站点指向wwwroot, 应用程序池选.NET4.0集成,端口随意(只要不被占用或冲突即可)注:wwwroot里的配置商品默认是50000的。若自定义了端口号需同步修改以下配置文件中的端口号

因为我在新建站点时用了50001,相应的修改如下

到此还要给下面的两个文件夹添加 IIS_IUSRS用户组

这个时候就可以在浏览器中输入http://localhost:50001会出现登录页啦,不过在注册账号时会报错

经过一阵子乱搞有点明白了,要想使用Execptionless前提是要先运行elasticsearch,即先执行下面的bat

现在就可以注册和登录一切都正常使用啦!

下面简单介绍下如何使用

这里红色的框是要在程序中用到的

现在新建一个控制台程序,从nuget中查找引用exceptionless,根据自己的项目安装对应的包

简单的程序使用

 1 using System;
 2 using Exceptionless;
 3 using Exceptionless.Logging;
 4 
 5 namespace ExceptionLessDemo
 6 {
 7     class Program
 8     {
 9         static void Main(string[] args)
10         {
11             ExceptionlessClient.Default.Configuration.ApiKey = "lJSj6SwpmA9Wih3AFkhq7AoIchtPZyZEimNQ3eCL";
12             ExceptionlessClient.Default.Configuration.ServerUrl = "http://localhost:50001";
13             ExceptionlessClient.Default.Startup();
14 
15             ExceptionlessClient.Default.SubmitLog("这是一个普通日志记录code:{12345678999}", LogLevel.Info);
16 
17             try
18             {
19                 ExceptionlessClient.Default.CreateLog("出错了", LogLevel.Error).Submit(); ;
20                 throw new Exception($"看这里异常了!时间:{DateTime.Now}");
21             }
22             catch(Exception e)
23             {
24                 e.ToExceptionless().Submit();
25             }
26 
27             Console.WriteLine("Hello World!");
28         }
29     }
30 }

最终的效果图如下

好了,就先到这吧。这是最简单的样子,还有很多东西要去研究如elasticsearch、kibana等。

因水平有限,以上如有讲述不正确的地方欢迎指正。

感谢阁下的阅览!