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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sD7O95O/article/details/78097249

昨天的文章<免费开源分布式系统日志收集框架 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 安装目录,如下

640?wx_fmt=png

针对 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

看到以下画面就成功了,再去服务里面启动。
640?wx_fmt=png
640?wx_fmt=png

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

640?wx_fmt=png

架设 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 项目)

640?wx_fmt=png
640?wx_fmt=png

建立 Exceptionless 项目


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

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

640?wx_fmt=png

安装 Client Exceptionless 套件 


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

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

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

640?wx_fmt=png

再来,建立一个 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>

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

640?wx_fmt=gif

结语


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


 相关文章:


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

ss_nlog_log_server


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

640?wx_fmt=jpeg

展开阅读全文

没有更多推荐了,返回首页