Exceptionless 是一个开源的实时的日志收集框架,它可以应用在基于 ASP.NET,ASP.NET Core,Web Api,Web Forms,WPF,Console,MVC 等技术栈的应用程序中,并且提供了Rest接口可以应用在 Javascript,Node.js 中。它将日志收集变得简单易用并且不需要了解太多的相关技术细节及配置。

在以前,我们做日志收集大多使用 Log4net,Nlog 等框架,在应用程序变得复杂并且集群的时候,可能传统的方式已经不是很好的适用了,因为收集各个日志并且分析他们将变得麻烦而且浪费时间。

1 从官网下载发布包

https://github.com/exceptionless/Exceptionless/releases

2 参考官方文档 安装部署

https://github.com/exceptionless/Exceptionless/wiki/Self-Hosting

3 鼠标双击 Start.bat(管理员模式) 运行即可

注意:此项目 依赖 ElastaicSearch 项目。(一个搜索引擎项目)先把这个包下载放到目录最好,ps下载不支持断点续传......

访问 http://127.0.0.1:50000/api/v2/status

检测安装状态

二、使用本地服务 Exceptionless 的客户端如何配置

  1. mvc 环境下, 从 nuget 安装 Exceptionless.Mvc
  2. <exceptionless apiKey="fT97ZX7Decl09SsFPKBMB2lWrS6wiWK6V6CiMAtX" serverUrl="http://localhost:50000"/>  其中加了 serverUrl="http://localhost:50000" 即 跑Exceptionless服务的地址

三、通过以上操作,就完成了 Exceptionless  的本地搭建

如果发布在局域网的机器,那么,需要改动 BaseURL节点

改成局域网IP 端口号

还要改 app.config.*.js 里面的baseUrl 配置 麻烦。

开启时候 先把搜索引擎 ES 开启。执行安装包下的 Start-ElasticSearch.ps1 脚本

四 开启Redis 缓冲服务

在Linux 下部署很简单  win server 下 ,安装非官方的redis-win 版本

http://www.redis.io/

下载页- 连接到微软开放技术组 在git上的 redis 3.2 win版本。(不推荐在生产环境用win版本,都说测试运行不稳定............!)

以windows 服务的形式运行。

redis 远程访问
原来是redis默认只能localhost登录,所以需要开启远程登录。解决方法如下:

在redis的配置文件redis.conf中,找到bind localhost注释掉。
注释掉本机,局域网内的所有计算机都能访问。
 band localhost 只能本机访问,局域网内计算机不能访问。
 bind 局域网IP 只能局域网内IP的机器访问, 本地localhost都无法访问。
在redis3.2之后,redis增加了protected-mode,在这个模式下,即使注释掉了bind 127.0.0.1,再访问redisd时候还是报错,如下
修改办法:protected-mode no

五 异常数据-默认存储在文件中,目录

<!-- Folder used to store event post data -->
<add key="StorageFolder" value="|DataDirectory|\storage"/>

而且异常信息进行了加密处理

{
"ProjectId": "590a8e5c002f0e0f44a5ef7f",
"Data": "H4sIAAAAAAAEAMVWW4vbRhT+K0b0oSW2mItkW3pK2W6IIdkN2U1aWAUxksb2EF3MzMjZbVhoSy4tBNKXfWj71D6X0odS0jT/prtx8i9yxpK1F9sNNAnFL9KZmfN93zmf5njvvqUPJtzyLS5lIa22lTBtXgnCvQ5yO8jZxcinxHd6dreLIOxcQn0foWors/z71uUpl0oUORzDNjI/WLxcKi7Nqkh4roU+gNVPk0zkQmnJNGAdwqYKFXZlRVKmXFn+3uI5FInl47aVs8wQ2uVKb+7HfKIB6RpXCjBW4QoVAp4EOC1L3rZiyUFREq7UhamPsE16oIp4jS7AF0Ox7oypBbEx6hLXc+szh+1zrEnDumGcXmTsAF/suXhO+l9JEsd3HZtiiGL3LSSdDsa7mPgIznSXGnVDAsdY314i8dHHtzdv7gy2t8KdW1euDL74pEV6mHhD6hBiHV5QR1ersz8XeVLce1eVXYTp21rRqHR9umzH/6ryDsCBDjYyQLM/fjl5cfTqz4cnj58fP3/08uj32d8PZkdPXv/w/T9ffQNo9Wezc6A0z+xBnvD97VJvD2+yfMSbwsBGpVl8NwTPx3zu7oTHKZMiH4Wmimoyj9d5jIpmeYGgzZvVFH3EdbgxZlJV5Vl0pYNPKzC4tj0cKq6r6BbTYsoXEQSf3YRJyKWhQHNGdWJhNJwqG+Sakvp1DdUFnBpAmYcsVfC9DRSU4ezbvA4srUNQZmOnoUirpMZFfhCcPPz15Omz1z//NfvptyA456sgUDK+EOuYlpIgWLoUggC6PwJ1dmzqk4ocYMosMlcR7YEFi7TMgCzB7TWNWHXPLPWkBjltynUm8vP9WNmOPrnYDuL21jaEyZE647S5D/bufJCWgPc1wIG1gMa4SEyOD2jU/9mA88mTT4Us8gyGhUkxkUUMzS5kGBelCTkAXGiWhpPxgRIxPGQ8K8xc6VPcc13ketBMNmUiZRFIW9oGF7aLPEJdYmyXZSxPQuNHEBC8Z89HIg+Cz3hUjlYs21M1LpS2+T4PrBZUrZYarhus9YEzO03brD5y0JlYJTNU4ktIQsDGFLldqNkYLvmkOuHBdibjsdA81qU0YPtdB4JF2KBfF7EsVDHUrXp8tDBqHb/4+vjZj7Pvvq33ns6Trk1sj6Bq1GcMcufNPbJxdXOrc2PD/AfI4dJN04oFcIuxk/T7CXcdL6KMRnHk0ChCXr9PmUkkoeMi4+H5uUURxZ7tABoMeLDNG/dqtVEsCQAA",
"CharSet": "utf-8",
"MediaType": "application/json",
"ApiVersion": 2,
"UserAgent": "exceptionless/4.0.0",
"ContentEncoding": "gzip",
"IpAddress": "172.16.20.248"
}

UI

用的Angular.js  1.64开发的单页面程序。

主题包地址:https://github.com/exceptionless/Exceptionless.UI

编译后 合并为单个app.*.js

集成了

/**
* @license AngularJS v1.6.4
* (c) 2010-2017 Google, Inc. http://angularjs.org
* License: MIT
*/
(function(window) {'use strict';

-------------------------------------------------------------------

六 集成为win 服务

将ES 注册为win 服务 在bin 下的 -service.bat install remove
----------注意,如果使用了excepless 的 Start-ElasticSearch.ps1 脚本启动,那么他使用的是 node-1 节点的es ,用户数据 在 data目录一定要注意!!!!!!!!!!!!!

示范代码:

public class ExceptionLessLog :ILog
{

/// <summary>
/// 跟踪
/// </summary>
public void Trace(string message, params string[] tags)
{
ExceptionlessClient.Default.CreateLog(message, LogLevel.Trace).AddTags(tags).Submit();
}

/// <summary>
/// 调试
/// </summary>
public void Debug(string message, params string[] tags)
{
ExceptionlessClient.Default.CreateLog(message, LogLevel.Debug).AddTags(tags).Submit();
}

/// <summary>
/// 信息
/// </summary>
public void Info(string message, params string[] tags)
{
ExceptionlessClient.Default.CreateLog(message, LogLevel.Info).AddTags(tags).Submit();
}

/// <summary>
/// 警告
/// </summary>
public void Warn(string message, params string[] tags)
{
ExceptionlessClient.Default.CreateLog(message, LogLevel.Warn).AddTags(tags).Submit();
}

/// <summary>
/// 错误
/// </summary>
public void Error(string message, params string[] tags)
{
ExceptionlessClient.Default.CreateLog(message, LogLevel.Error).AddTags(tags).Submit();
}
}

参考:

https://github.com/exceptionless/Exceptionless/

http://www.cnblogs.com/kangwl/p/5859416.html

http://www.cnblogs.com/savorboard/p/exceptionless.html

http://www.cnblogs.com/LiangSW/p/6026817.html

http://www.fwhyy.com/2016/09/use-exceptionLess/

http://mp.weixin.qq.com/s?__biz=MzAwNTMxMzg1MA==&mid=2654067937&idx=1&sn=01e502d9ef5cf77817aa80db6903923d&scene=0#wechat_redirect

ExceptionLess 搭建到本地服务器的更多相关文章

  1. 搭建Git本地服务器

    搭建Git本地服务器 参考文章:http://www.ossxp.com/doc/git/gitolite.html 当前任务,学习中... 公司小范围用法: 服务器上做的: .在服务器上建立一个用户 ...

  2. linux下搭建svn本地服务器

    在linux下搭建svn本地服务器可以很好的管理自己的代码,具体过程如下: # mkdir svn_local # cd svn_local  # svnadmin create led_diplay ...

  3. [ 搭建Redis本地服务器实践系列二 ] :图解CentOS7配置Redis

    上一章 [ 搭建Redis本地服务器实践系列一 ] :图解CentOS7安装Redis 详细的介绍了Redis的安装步骤,那么只是安装完成,此时的Redis服务器还无法正常运作,我们需要对其进行一些配 ...

  4. [ 搭建Redis本地服务器实践系列一 ] :图解CentOS7安装Redis

    上一章 [ 搭建Redis本地服务器实践系列 ] :序言 作为开场白介绍了下为什么要写这个系列,从这个章节我们就开始真正的进入正题,开始搭建我们本地的Redis服务器.那么关于Redis的基本概念,什 ...

  5. [ 搭建Redis本地服务器实践系列 ] :序言

    说起来,是在一个气候适宜的下午,虽然临近下班,不过办公室里还是充满了忙碌的身影,不时的还会从办公区传来小伙伴们为了一个需求而激烈争论的声音,自从入了互联网这个行业,说实话,也就很少休息了,当然了也不全 ...

  6. [ 搭建Redis本地服务器实践系列三 ] :图解Redis客户端工具连接Redis服务器

    上一章 [ 搭建Redis本地服务器实践系列二 ] :图解CentOS7配置Redis  介绍了Redis的初始化脚本文件及启动配置文件,并图解如何以服务的形式来启动.终止Redis服务,可以说我们的 ...

  7. 搭建https本地服务器:如何得到被所有客户端认可的ssl证书

    https,作为http的加密版,作用还是很大的:能够提升网站搜索权重,让你的网站更安全,而且如果你的网站没有使用https的话,将无法作为移动设备原生应用的api接口.可见掌握为网站启用https的 ...

  8. 搭建apache本地服务器·Win

    1.下载apache地址:https://www.apachelounge.com/download/ 注意:下载压缩包如下 httpd-2.4.37-win64-VC15.zip 其中根据自己电脑的 ...

  9. 使用Node.js搭建一个本地服务器

    let http = require('http'); //创建一个http let server = http.createServer((request,response)=>{ //创建一 ...

随机推荐

  1. firedac二进制序列和JSON序列的对比

    firedac二进制序列和JSON序列的对比 以同样大小的一个数据集的数据,作为测试的数据. 以JSON序列后的数据体积是4958字节. 以二进制序列后的数据体积是3044字节. 4958/3044= ...

  2. C#编程(二)

    C#中的变量 例如:int i;//声明一个int类型的变量,变量名是 i;在未为该变量进行赋值操作前,禁止使用该变量.使用(=)给变量赋值,在声明之后可以 i=10来赋值.也可以在声明一个变量的同时 ...

  3. 使用线程安全的 MSWeakTimer ,它不会对目标进行retain操作,避免循环引用

    MSWeakTimer 简易翻译:该timer没有runloop概念,线程安全,没有循环引用现象. https://github.com/mindsnacks/MSWeakTimer Descript ...

  4. 解决hue/hiveserver2对于hive date类型显示为NULL的问题

    用户报在Hue中执行一条sql:select admission_date, discharge_date,birth_date from hm_004_20170309141149.inpatien ...

  5. 解决sqoop报错:java.lang.OutOfMemoryError: Java heap space

    报错栈: -- ::, INFO [main] org.apache.sqoop.mapreduce.db.DBRecordReader: Executing query: = ) AND ( = ) ...

  6. Xcode界面切换动画效果

    CATransition *animation = [CATransition animation]; [animation setDuration:0.2f]; [animation setTimi ...

  7. Maven中<dependencies>节点和<dependencyManagement>节点的区别

    dependencyManagement只是插件管理,并不是真正的插件依赖,所以里面包含的插件在没有子项目使用的时候,并不会真正下载 1 .使用项目继承 利用项目继承可以将结构信息,部署信息,共同的依 ...

  8. @Java类加载的过程

    前言 我们写的源程序.java文件经过编译后成为了.class字节码文件,.class文件中描述了类的各种信息,最终都需要加载到虚拟机(JVM)之后才能运行和使用.而虚拟机如何加载这些.class文件 ...

  9. Python在Windows下操作CH341DLL

    #! /usr/bin/env python #coding=utf-8 import os import time from ctypes import * class USBI2C(): ch34 ...

  10. linux进程、调度、线程、进程上下文等几点理解

    1.信号来自进程或内核 2.线程共享进程的代码空间和数据空间(全局变量或静态变量),文件描述符,信号,以及malloc分配的内存,每个线程拥有独立的栈空间和程序计数器,在创建线程时,调用pthread ...