使用 Exceptionless 作为 Log Server 搭配 NLog 记录系统日志

昨天的文章<免费开源分布式系统日志收集框架 Exceptionless>反响很大,今天推的一篇是续集,文章来自于宝岛台湾的MVP, 让 Exceptionless 建置 Log Server,性能不用担心,用的是大名点点的ELK组合.


前言



...久违的新文章,让我的眼角流下了蛋蛋忧伤的泪珠....

今天来介绍一下一款 Open Source 的项目Exceptionless

Exceptionless 是什么? Exceptionless 的团队对这个名称的定义意义是无例外,当然...谁不想~不要有例外错误发生呢? (...),但是当发生例外时你要怎么知道!? 就可以通过 Exceptionless 的服务来取得必要信息啦(要钱的~)

当然,这个团队也是很佛心的提供了 Open Source 让你可以自己架设你的 Log Server ! 整个 Exceptionless 包含了 Server Client 两部分,Server指的是一个 Web Api 的项目与 Dashboard 检视,提供Client 端将系统信息写入,Clinet 指的是客户端通过所提供的 Lib 就能够简单的呼叫提供的方法写入 Log 信息。

目前有提供的客户端支持有 ASP.NET, MVC, Web API, WPF, WinForms, and Console,JavaScript, Node.js,另外也支持了NLog扩充,为了我们的荷包着想,接来下我将介绍一下怎么自行安装 Exceptionless 给你的系统使用,本文章使用 Exceptionless v 3.0.0 为范例。

 

准备动作


首先,请先准备以下几个项目

§  安装 .Net Framework 4.5.1+

§  安装 Java 1.8+

§  安装 IIS 8+

§  安装 ElasticSearch 1.7.0+

§  下载 Exceptionless 3.0.0

§  下载 Exceptionless.UI 2.1.1

针对 Java 的部分,需要至环境变量设定 JAVA_HOME,指向你的 Java 安装目录,如下


针对 ElasticsearchExceptionless 使用 Elasticsearch 作为数据库储存你的 Log

下载后解压缩至 C:\Program Files\Elasticsearch\content\ 路径底下,

另外需要使用 Exceptionless 配置好的配置文件,直接覆盖掉在 C:\Program Files\Elasticsearch\content\elasticsearch-1.7.2\config里面的 elasticsearch.yml

接着,我们通过 Window Service Elasticsearch 启动 (参考)

开启命令提示字符,切换到 C:\ProgramFiles\Elasticsearch\content\elasticsearch-1.7.2\bin 目录下

输入: service.bat install elasticsearch-service-x64

看到以下画面就成功了,再去服务里面启动。


另外,还要通过浏览器去检查一下服务是否启动,开启浏览器输入网址: http://localhost:9200


架设 Server Dashboard


架设的部分,最简单的方法可以使用 GitHub 上所提供的 Release 档案进行架设,

解压缩准备步骤中,所下载的两个档案 Exceptionless Exceptionless.UI

1.开启Exceptionless 解压缩后的 wwwroot 目录里面的 web.confg 档案,

修改里面的内容:

RedisConnectionString: 支持 Redis,如果有的话就可以使用

ElasticSearchConnectionString: 刚刚所安装的 ElasticSearch 的网址: http://localhost:9200

BASE_URL: 更改为 Exceptionless.UI Dashboard 网站的网址,例如:http://ui.localexceptionless.com/#

EnableSSL: 是否要使用 SSL,当然有 SSL 的话是建议启用的

WebsiteMode: 如果为在线环境改使用 Production

Exceptionless:ServerUrl: 更改为 Exceptionless Api 网站的网址,例如: http://api.localexceptionless.com

剩下还有一些设定,例如 Mail 通知等等,可以视需求进行设定。

2.开启 Exceptionless.UI解压缩后目录里面的 app.config.3869d2f297f52e30ccaa12dc361cdd01.js档案,

修改里面的内容:

BASE_URL: 更改为 Exceptionless Api 网站的网址,例如: http://api.localexceptionless.com

USE_SSL: 是否要使用 SSL,当然有 SSL 的话是建议启用的

IIS 中建立两个站台,分别指到 Exceptionless wwwroot 目录与 Exceptionless.UI 的根目录。

之后执行网站,就会看到以下两张图 (在这步骤因为我没有IIS8...所以我使用 VS 2015 开启项目档执行 Api 项目)


建立 Exceptionless 项目


当网站架设完成后,你需要点选 Signup注册一个账号进入 Exceptionless,登入后画面如下

在这个页面你要建立一个 Project ,当 Project 建立完成后会产生一组 Api Key,这组 Api Key 将会在Client 端使用到,如下图


安装 Client Exceptionless 套件 


到这个步骤就是要来使用我们所建置完成的 Log Server

首先我建立了一个测试网站,由于一般开发我们都会使用 NLog 作为纪录 Log 的第三方套件使用,而 Exceptionless 也扩展了 NLog,让我们可以直接通过呼叫 NLog 的方法,将 Log 写入到 Exceptionless Target

接下来通过 NuGet 安装 NLog Exceptionless.NLog,如下图


再来,建立一个 NLog.config 档案,内容为设定 Exceptionless Target,如下

 
<?xml version="1.0" encoding="utf-8" ?>
<nlogxmlns="http://www.nlog-project.org/schemas/NLog.xsd"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <extensions>
    <addassembly="Exceptionless.NLog" />
  </extensions>
  <targetsasync="true">
    <targetname="exceptionless"xsi:type="Exceptionless"

apiKey="eIH5SgZcaluHIfMRzCg0OW5FUZQQMqmfUDsYSOG0"

serverUrl="http://localhost:50000/">
      <fieldname="host"layout="${machinename}" />
      <fieldname="identity"layout="${identity}" />
      <fieldname="windows-identity"

layout="${windows-identity:userName=True:domain=False}" />
      <fieldname="process"layout="${processname}" />
    </target>
  </targets>
  <rules>
    <loggername="*"minlevel="Info"writeTo="exceptionless" />
  </rules>
</nlog>

然后执行我的测试网站,就可以看到以下的结果:


结语


以上就是用 Exceptionless 建置 Log Server 的教学,Exceptionless Dashboard 操作起来还蛮好使用的,也可以依据条件进行塞选,又整合了 NLog,使用上其实可以很简易的加入项目,效能方面的话,Exceptionless我测试过写入 1 千多万笔的 Log 信息,通过 Dashboard 来查询的时候速度都还OK,如果想的话,也可以自己介接他的 API,做自己的 Dashboard,更多的功能就要你自己去探索了喔!!


 相关文章:

  • 免费开源分布式系统日志收集框架 Exceptionless

  • 使用Elasticsearch 与 NEST 库 构建 .NET 企业级搜索

  • 为elasticsearch集成一些实用插件以及配置的开箱即用的版本


原文地址:https://dotblogs.com.tw/joysdw12/2015/10/01/exceptionle

ss_nlog_log_server


.NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关注

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/328510.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

elementui下拉框选择图片_element ui下拉框如何实现默认选择?

为什么我这样写没反应呢运营商级别 <el-optionv-for"item in options1":label"item.label":value"item.value"></el-option>export default{data(){return{selected:,options1:[{value: 选项1,label: 省级运营商}, {value: 选项2,la…

程序员成长之路 java面试指导(作者说的极好要看) 静下心看

https://blog.csdn.net/weixin_41780944/article/details/79429769 从面试官的角度分享一些后端校招经验&#xff08;作者说的极好要看&#xff09; https://blog.csdn.net/qq_34337272/article/details/80875016 除了手写代码和计算机基础&#xff0c;剩下的方面都是可选项…

[MySQL] 二进制的应用场景

前言 MySQL 是一种常用的关系型数据库管理系统&#xff0c;广泛应用于各种软件和网站开发中。在 MySQL 中&#xff0c;数据以二进制文件的形式存储在硬盘上。这些二进制文件不仅可以提供数据的持久化存储&#xff0c;还可以在不同的应用场景中发挥重要作用。本文将介绍 MySQL …

各种面试题(二)

转载自 各种面试题(二)1、面向对象的特征有哪些方面? 封装&#xff1a;通常认为封装是把数据和操作数据的方法绑定起来&#xff0c;对数据的访问只能通过已定义的接口。 多态性&#xff1a;多态性是指允许不同子类型的对象对同一消息作出不同的响应。简单的说就是用同样的对象…

亚马逊如何变成 SOA(面向服务的架构)?

上一篇文章&#xff0c;我摘录了《程序员的呐喊》。这本书有趣的内容太多&#xff0c;今天再摘录一段。 1、 亚马逊公司不仅是世界最大的网络书店&#xff0c;还是世界最大的云服务商。它是怎么实现从电商到云商的转变呢&#xff1f; 一切都是CEO杰夫贝索斯促成的&#xff0c;他…

新闻发布项目——业务逻辑层(commentService)

package bdqn.newsManageServlet.Service;import java.util.List;import bdqn.newsManageServlet.Dao.commentDao; import bdqn.newsManageServlet.Dao.Impl.commentDaoImpl; import bdqn.newsManageServlet.entity.comment;/*** 新闻评论的业务逻辑层* author Administrator**…

linux 安装mysql 8.0_Linux安装mysql 8.0的详细方法介绍(代码示例)

本篇文章给大家带来的内容是关于Linux安装mysql 8.0的详细方法介绍(代码示例)&#xff0c;有一定的参考价值&#xff0c;有需要的朋友可以参考一下&#xff0c;希望对你有所帮助。经过一番努力下载mysql文件&#xff0c;我们可以开始Mysql8.0的安装了。解压文件// 解压文件生成…

亚信科技笔试面试2019届

首先笔试 笔试超级难 jsp 数据库 java 很多要百度 记得多找几个小伙伴哦~ 面试 一面: 技术面 讲一下你的项目 根据你的项目提问 面试官&#xff1a; 有哪些排序算法 我:冒泡 面试官&#xff1a; 只有一个冒泡? 我: 还有选择吧(我怕手写 &am…

Xamarin支持微软HoloLens混合现实开发

今年年初&#xff0c;微软以4亿美元的价格收购移动开发工具Xamarin&#xff0c;Xamarin允许开发者编写跨平台应用&#xff0c;提供Android、iOS和Windows10上原生应用体验。微软收购Xamarin后&#xff0c;Xamarin变得更加开放&#xff0c;比如Visual Studio用户免费使用&#x…

mysql fpmmm_zabbix配fpmmm(mpm)数据传送不了问题解决

我们环境用zabbix mpm来监控mysql&#xff0c;不过最近官网已经不叫mpm了&#xff0c;而是叫fpmmm&#xff0c;理由为&#xff1a;fpmmm is the successor of mpm. mpm was renamed to fpmmm because of the naming conflict with the Apache Multi-Processing Modules (MPM).好…

各种面试题(一)

转载自 各种面试题(一)1.说说你对缓存的理解&#xff1f; 1.使用缓存的目的&#xff1a; 提高应用程序的性能&#xff0c;减少到数据库的访问次数 2.缓存的介质&#xff08;缓存的存储位置&#xff09; 内存&#xff1a;临时性存储空间 存取数据快 减少网络通信量 硬盘&#…

浙大中控笔试面试2019届

学校招聘会投递简历 过了几天 叫我去滨江面试 先笔试 没人监考 &#xff08;但是面试的时候会抽几道笔试题问你&#xff09; 面试官是三个 吓尿了 面试官&#xff1a; 我: 面试官&#xff1a; JDBC会吗 讲一下 我: DriverManager获取连接对象..…

新闻发布项目——业务逻辑层(categoryTBService)

package bdqn.newsManageServlet.Service;import java.util.List;import bdqn.newsManageServlet.entity.categoryTB; import bdqn.newsManageServlet.entity.newsTb;/*** 新闻类别的业务逻辑层的接口* author Administrator**/ public interface categoryTBService {// 删除,根…

python初学函数_Python初学者速收藏!面向Python初学者的知识-函数

什么是函数式编程&#xff1f;函数式编程是一种编码范例&#xff0c;其中我们定义要做什么而不是执行什么动作。这个想法最初是从数学中采用的&#xff0c;我们定义输入到函数中的输入以及我们期望从中获得的输出。 函数式编程很少依赖状态管理-这意味着无论输出多少&#xff0…

通用业务流水号功能设计

有一段时间没有思考代码相关的工作了&#xff0c;最近项目经常碰到不同业务流水号的生成&#xff0c;下面的技术人员每次都针对流水号生成写一些复杂的代码&#xff1b;为了解放以后这方面的工作于是动了一下脑子想一个动态可配置的流水号生产组件&#xff0c;虽然没写代码一段…

时代银通笔试20181023

Java4种访问控制符 Java中的四个访问控制符权限从高到低分别为private、protected、包访问权限和private。访问控制符属于类所有&#xff0c;所以在方法中不能使用访问控制符修饰。访问控制符只能修饰类中的成员变量、成员方法和类本身。 1、private 修饰的成员变量&#xff…

总结Java常见面试题和答案

转载自 总结Java常见面试题和答案 int和Integer有什么区别? 答&#xff1a;int是java的原始数据类型&#xff0c;Integer是java为int提供的封装类&#xff0c;java为每个原始数据类型都提供了封装类。String和StringBuffer的区别? 答&#xff1a;String是不可变的对象&…

ubuntu 13.04 mysql_Ubuntu13.04 下MySQL5.6安装过程

1.mysql下载:按照自己系统选择 http://www.mysql.com/downloads/installer/2.mysql依赖包安装 (libaio1.so) 若已安装可以省略:sudo apt-get install libaio1sudo apt-get install cmake libncurses5-dev bison g (可不选&#xff0c;有问题时再执行)3.组及用户创建:sudo gro…

Exceptionless 本地部署

前两天看到了这篇文章免费开源分布式系统日志收集框架 Exceptionless&#xff0c;亲身体会了下&#xff0c;确实不错&#xff0c;按照官方的文档试了试本地部署&#xff0c;折腾一番后终于成功&#xff0c;记下心得在此&#xff0c;不敢独享。 本地部署官方wiki .NET 4.6.1 这个…

java文件读写

java.io几种读写文件的方式 一、Java把这些不同来源和目标的数据都统一抽象为数据流。 Java语言的输入输出功能是十分强大而灵活的。 在Java类库中&#xff0c;IO部分的内容是很庞大的&#xff0c;因为它涉及的领域很广泛:标准输入输出&#xff0c;文件的操作&#xff0c;网络…