返回顶部
首页 > 资讯 > 后端开发 > ASP.NET >ExceptionLess的安装、配置、使用教程
  • 324
分享到

ExceptionLess的安装、配置、使用教程

2024-04-02 19:04:59 324人浏览 独家记忆
摘要

目录前言安装邮件配置Aspnetcore集成提交错误信息集成日志框架其他语言能用吗?参考资料前言 Exceptionless 是一个开源的实时的日志收集框架,它可以应用在基于 asp

前言

Exceptionless 是一个开源的实时的日志收集框架,它可以应用在基于 asp.netASP.net coreWEB api,Web FORMs,WPF,Console,ASP.net mvc 等技术开发的应用程序中,并且提供了REST接口可以应用在 javascriptnode.js 中。(基本就是.Net技术栈的一套东西)

项目地址:https://GitHub.com/exceptionless/Exceptionless

它将日志收集变得简单易用并且不需要了解太多的相关技术细节及配置,对于微服务架构的应用程序来说,统一的日志收集系统的建立更是有必要。

要使用的话只需要在其官网上注册个账号,然后在代码中配置一下APIKey就可以了,不过免费版额度有限,当然还是自己部署一套比较好,这次依然使用Docker部署

安装

docker部署可以在gitHub下载代码自己构建,也可以用官方打包好的镜像,为了方便这里我直接使用官方打包的镜像

docker-compose.yml 内容如下

可以看到其中包含5个容器:ExceptionLess App、ExceptionLess Job、elasticsearch、kibana、Redis

version: '3.7'

services:
  app:
    depends_on:
      - elasticsearch
      - redis
    image: exceptionless/app:latest
    environment:
      EX_AppMode: Production
      EX_ConnectionStrings__Cache: provider=redis
      EX_ConnectionStrings__Elasticsearch: server=Http://elasticsearch:9200
      EX_ConnectionStrings__MessageBus: provider=redis
      #EX_ConnectionStrings__Metrics: provider=statsd;server=statsd;
      EX_ConnectionStrings__Queue: provider=redis
      EX_ConnectionStrings__Redis: server=redis,abortConnect=false
      EX_ConnectionStrings__Storage: provider=folder;path=/app/storage
      # 官方配置默认包含HTTPS,我把它关了
      #ASPNETCORE_URLS: http://+;https://+
      ASPNETCORE_URLS: http://+
      # 关了HTTPS,这个端口也不用配置了
      #ASPNETCORE_HTTPS_PORT: 5001
      # 关了HTTPS,证书也不用配置
      #ASPNETCORE_Kestrel__Certificates__Default__PassWord: password
      #ASPNETCORE_Kestrel__Certificates__Default__Path: /https/aspnetapp.pfx
      EX_RunJobsInProcess: 'false'
    ports:
      - 5000:80
      # 关了HTTPS,不需要映射443端口
      #- 5001:443
    volumes:
      - ex_appdata:/app/storage
      - ex_ssldata:/https

  jobs:
    depends_on:
      - app
    image: exceptionless/job:latest
    environment:
      EX_AppMode: Production
      # UI地址,修改这里的IP地址为你的服务器IP地址
      EX_BaseURL: http://你的IP:5000
      EX_ConnectionStrings__Cache: provider=redis
      EX_ConnectionStrings__Elasticsearch: server=http://elasticsearch:9200
      # 邮件配置
      EX_ConnectionStrings__Email: smtps://邮箱地址:密码@SMTP服务器:端口
      EX_SmtpFrom: 发件邮箱地址
      EX_ConnectionStrings__MessageBus: provider=redis
      #EX_ConnectionStrings__Metrics: provider=statsd;server=statsd;
      EX_ConnectionStrings__Queue: provider=redis
      EX_ConnectionStrings__Redis: server=redis,abortConnect=false
      EX_ConnectionStrings__Storage: provider=folder;path=/app/storage
    volumes:
      - ex_appdata:/app/storage

  elasticsearch:
    image: exceptionless/elasticsearch:7.15.2
    environment:
      discovery.type: single-node
      xpack.security.enabled: 'false'
      ES_JAVA_OPTS: -Xms1g -Xmx1g
    ports:
      - 9200:9200
      - 9300:9300
    volumes:
      - ex_esdata:/usr/share/elasticsearch/data

  kibana:
    depends_on:
      - elasticsearch
    image: docker.elastic.co/kibana/kibana:7.15.2
    ports:
      - 5601:5601

  redis:
    image: redis:6.0-alpine
    ports:
      - 6379:6379

volumes:
  ex_esdata:
    driver: local
  ex_appdata:
    driver: local
  ex_ssldata:
    driver: local

邮件配置

邮件配置是比较麻烦的地方,我查了一些资料才解决

jobs容器中的这两个环境变量里配置

EX_ConnectionStrings__Email: smtps://邮箱地址:密码@SMTP服务器:端口
EX_SmtpFrom: 发件邮箱地址

有坑的地方就是EX_ConnectionStrings__Email变量的邮箱地址需要对@符号进行转义,用%40代替@符号

以我的自建邮箱为例,邮箱地址是:test@dealiaxy.com,那么配置就是这样

EX_ConnectionStrings__Email: smtps://test%40dealiaxy.com:密码@SMTP服务器:端口
EX_SmtpFrom: test@dealiaxy.com

这样配置完成就可以正常发邮件了~

PS:还可以配置Webhook实现报错自动推送到微信、钉钉之类的平台,不细说了

AspNetCore集成

我主要使用的.Net技术栈是AspNetCore,其他项目可以参考官方文档的集成教程

首先在ExceptionLess中创建一个项目,把APIKey复制下来

编辑AspNetCore项目的appsettings.JSON文件,增加配置

"Exceptionless": {
    "ServerUrl": "http://12.0.0.1:5000",
    "ApiKey": "Rajo99MksQtS6zZK81238jTkNHNOQP33A3iW45JC"
}

然后编辑Program.cs,添加服务和中间件

builder.Services.AddExceptionless(builder.Configuration);
app.UseExceptionless();

集成这一步就搞定了

记录事件

Exceptionless中的事件有以下几种类型:

  • 日志消息:记录的日志,可以是任何文本内容
  • 特性使用:功能使用量的记录,例如接口调用情况等
  • 异常情况:记录异常的信息
  • 失效链接:当被访问的页面不存在时进行记录

除此之外,每个事件还可以附加tags、object、UserIdentity、Description之类的信息,有这些信息的辅助可以方便后续排查问题。

最简单的使用

ExceptionlessClient.Default.CreateLog("message").Submit();

CreateLog方法会放回一个EventBuilder类型的对象,之后在这个对象上进行大部分操作支持链式调用

可以像上面那样一行代码链式调用,也可以这样

// 先创建
var eventBuilder = ExceptionlessClient.Default.CreateLog("message");
// 再来慢慢添加
eventBuilder.AddObject(...);
eventBuilder.AddTags(...);
// 最后提交
eventBuilder.Submit();

可以附加到事件中的信息有很多,下面是官网提供的一些例子

// Set the reference id of the event so we can search for it later (reference:id).
// This will automatically be populated if you call ExceptionlessClient.Default.Configuration.UseReferenceIds();
.SetReferenceId(Guid.NewGuid().ToString("N"))
// Add the order object but exclude the credit number property.
.AddObject(order, "Order", excludedPropertyNames: new [] { "CreditCardNumber" }, maxDepth: 2)
// Set the quote number.
.SetProperty("Quote", 123)
// Add an order tag.
.AddTags("Order")
// Mark critical.
.MarkAsCritical()
// Set the coordinates of the end user.
.SetGeo(43.595089, -88.444602)
// Set the user id that is in our system and provide a friendly name.
.SetUserIdentity(user.Id, user.FullName)
// Set the users description of the error.
.SetUserDescription(user.EmailAddress, "I tried creating an order from my saved quote.")

例如,使用SetUserIdentity设置了用户信息,在异常列表就可以看到用户名,如图

AddTags添加标签,在页面中以badge的形式显示

还有AddObject,很方便,可以直接把对象传进去,由于C#语言有匿名对象,那就更方便了,在页面上的“扩展数据”标签页上可以看到,ExceptionLess会把对象处理成表格形式,更加直观

提交错误信息

ExceptionLess提供了Exception对象的扩展方法

可以catch到错误后直接Submit

try {}
catch (Exception ex) {
    ex.ToExceptionless().Submit();
}

当然也可以附加一些信息进去

ex.ToExceptionless().AddObject(...).Submit();

集成日志框架

除了手动提交事件,它还提供了与现有日志框架集成的方法

安装对应的nuget包就行(简单搜了一下,至少对Log4net和NLog的支持应该是没啥问题的)

以与Log4net集成为例,首先安装nuget包:Exceptionless.Log4net

附上一个简单的Log4net配置

<log4net>
<appender name="exceptionless" type="Exceptionless.Log4net.ExceptionlessAppender,Exceptionless.Log4net">
  <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%-4timestamp [%thread] %-5level %logger %ndc - %message%newline"/>
  </layout>
</appender>

<root>
  <level value="DEBUG"/>
  <appender-ref ref="exceptionless"/>
</root>
</log4net>

其他语言能用吗?

虽然官方只支持.Net平台和前端js调用、vue3),不过ExceptionLess提供了大量的HTTP接口,想要在其他语言的项目中使用,只需要调用对应的接口就行了,甚至可以自己封装一个

不过在其他语言的项目中,我推荐使用Sentry(下一篇文章要介绍的),支持的语言/框架更多,ExceptionLess的优势在于和AspNetCore这类.Net平台的结合更好,结果页面更直观~

话说回来,ExceptionLess的接口文档(swagger)在/docs/index.html,根据部署地址访问就能看到,里面你要的功能基本都有。

参考资料

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

.net core微服务之基于Exceptionless实现分布式日志记录:https://www.cnblogs.com/edisonchou/p/exceptionless_foundation_and_quick_start.html

开源日志框架Exceptionless使用教程:https://www.cnblogs.com/youring2/p/11546485.html

Exceptionless 5.x 无法正常发送邮件的问题解决 :https://www.cnblogs.com/edisonchou/p/solve_the_problem_of_exceptionless_on_cannot_send_emails.html

到此这篇关于ExceptionLess的安装、配置、使用教程的文章就介绍到这了,更多相关ExceptionLess安装使用内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: ExceptionLess的安装、配置、使用教程

本文链接: https://lsjlt.com/news/165032.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • ExceptionLess的安装、配置、使用教程
    目录前言安装邮件配置AspNetCore集成提交错误信息集成日志框架其他语言能用吗?参考资料前言 Exceptionless 是一个开源的实时的日志收集框架,它可以应用在基于 ASP...
    99+
    2024-04-02
  • Gradle的详细安装配置及使用教程
    Gradle的详细安装配置及使用教程 Gradle的安装 到Gradle官网,官网地址:https://gradle.org/releases/。下载对应的版本,本文安装的是 4.3.1 版本。 下...
    99+
    2023-09-05
    gradle java
  • mysql8的安装配置教程
    网上的安装教程有很多,基本上大同小异,安装过程中可能因为很小的细节导致安装失败,我也是参照了很多的安装教程才安装成功的,安装过程中会出现各种各样的问题,我们会根据这些问题去查找答案的同时也提高了自己解决问题...
    99+
    2024-04-02
  • mysql8.0.20的安装配置教程
    MySQL 8.0.20 安装教程一:mysql官网下载https://dev.mysql.com/downloads/file/id=494993    不用注册,直接下载就好二:解压...
    99+
    2024-04-02
  • Nginx的安装配置教程
    一、Nginx的下载与安装 Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好   1.下载 在Ngin...
    99+
    2023-09-03
    nginx 前端 服务器
  • Docker+nacos+seata1.3.0安装与使用配置教程
    在此之前我搞了一天,虽然seata好用,用起来也超级简单,但是安装配置是真的麻烦,遇见了各种坑,下面来进入正题。o(╥﹏╥)o 一 . 版本    注意:如果版本...
    99+
    2024-04-02
  • webpack安装配置及使用教程详解
    目录一、webpack介绍1、由来2、介绍3、作用4、拓展说明5、webpack整体认知二、webpack安装1、安装node2、安装cnpm3、安装nrm的两种方法4、安装webp...
    99+
    2024-04-02
  • mysql5.7.33安装配置教程【保姆级安装教程】
    MySQL5.7.33安装教程 1、官方网站下载 点击这里跳转页面下载 1.1、看下你是什么系统,系统是64位还是32位   2、解压到D盘跟路径或者其下面纯英文路径 2.1、可见它没有data、log等文件夹,不需手动添加(下面执行命...
    99+
    2023-09-16
    mysql 数据库
  • MariaDB的安装与配置教程
    目录MariaDB的安装与配置1.安装相对应的源2.清除缓存,加载配置3.安装mariadb4.启动mariadb5. 查看mariadb进程6.MariaDB数据库初始化7.初始化测试登陆8.MariaDB设置utf8...
    99+
    2022-06-29
    MariaDB安装配置 MariaDB安装
  • TortoiseGit的安装与配置教程
    目录1.为什么选择Git效率历史TortoiseGit 简介2.下载安装Git及Tortoisegit3.Tortoisegit 配置1.为什么选择Git 效率 很多人有一种习惯吧,...
    99+
    2024-04-02
  • Grafana的安装与配置教程
    这篇文章主要讲解了“Grafana的安装与配置教程”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Grafana的安装与配置教程”吧!一: 简介Grafana 是一个开源仪表盘工具,...
    99+
    2023-06-04
  • PyCharm 安装与使用配置教程(windows,mac通用)
    pycharm是一款功能强大的python编辑器,具有跨平台性,鉴于目前最新版pycharm使用教程较少,为了节约大家摸索此IDE的时间,来介绍一下pycharm在windows下是如何安装的。MAC下安装也是一路N...
    99+
    2022-06-02
    PyCharm 安装教程 PyCharm 安装教程 MAC python 环境变量 PyCharm 新建项目 PyCharm关联Python解释器配置 PyCharm安装库
  • mysql5.7安装及配置教程
    本文为大家分享了mysql安装配置教程,供大家参考,具体内容如下 一、配置MySQL数据库 1、解压绿色版mysql,并改名为mysql5.7,如下图 对比一下下图5.6以前的版本,少data目录(存放数...
    99+
    2024-04-02
  • MySql 8.0.11安装配置教程
    官网地址:https://dev.mysql.com/downloads/mysql/ 我这里是RHEL6.5的系统,因此选择RedHat 6 x86,64bit操作系统---下载第一个RPM Bundle...
    99+
    2024-04-02
  • IDEA安装与配置教程
    一、下载并安装IDEA 1、下载官网: 下载 IntelliJ IDEA (这里以Windows系统为例,其他系统类似) 2、安装 1、下载完成后,直接点击安装包安装,即可。 2、开始安装,然后下一步 3、可以在此处...
    99+
    2023-08-30
    intellij-idea java ide
  • Centos7.7安装及配置教程
    以下是CentOS7.7安装及配置的教程:1. 下载CentOS 7.7的ISO镜像文件,可以在CentOS官网上找到并下载。2. ...
    99+
    2023-09-21
    Centos
  • SQLyog 安装和配置教程
    SQLyog 安装和配置教程 软件下载 SQLyog下载地址:https://sqlyog.en.softonic.com/ 安装步骤 说明:SQLyog安装非常简单,基本上是傻瓜式安装。 下载后会...
    99+
    2023-09-05
    mysql
  • Composer安装与配置教程
    一、windows系统下安装安装Composer教程 下载安装php 方法一、下载Composer安装包 ...
    99+
    2023-08-31
    composer php Powered by 金山文档
  • MySQL 8.0.26 安装配置教程
    文章目录 MySQL 8.0.26 安装配置教程1. 简介2. 下载2.1 官网下载2.2 云盘下载 3. 安装4. 配置5. 配置环境变量5. 测试 MySQL 8.0.26 安装配置教程 1. 简介 数据库软件的...
    99+
    2023-08-17
    mysql 数据库 服务器
  • XShell免费版的安装配置教程及使用保姆级教程
    目录一、 XShell的作用二、 下载XShell1.访问XShell官网,填写姓名和邮箱即可获取下载地址2. 从邮箱复制链接下载三、 安装XShell1. 双击运行XShell安装文件,并点击“下一步&rd...
    99+
    2022-08-16
    XShell免费版安装 XShell安装配置教程
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作