如何在 C# 中使用 Exceptionless

背景

“Exceptionless”一词的定义是:无例外。Exceptionless可为您的JavaScript,Node,.NET Core,ASP.NET,Web API,WebForms,WPF,控制台和MVC应用程序提供实时错误报告。它将收集到的信息组织成简单的可操作数据,这些数据将帮助您的应用程序变得异常异常!

Exceptionless专注于实时可配置性,这使其与其他错误监视服务区分开来。如果其他人可能需要更改代码中的配置并重新部署应用程序,则Exceptionless允许您进行更改而无需更改已部署的代码。

入门

Exceptionless为您提供跟踪错误,日志和事件的工具,同时指导您寻求可行的解决方案。首先,您需要确定自己是无主机例外还是使用我们的托管版本。如果您选择使用我们的托管版本,则可以免费开始使用。

托管选项#

  1. 创建一个帐户

  2. 注册后,系统将提示您创建第一个项目。

  3. 通过单击项目列表页面上的“下载并配置客户端”操作按钮来配置您的应用程序。

  4. 选择您的项目类型,然后按照说明进行操作。

  5. 您的应用程序现在将自动将所有未处理的错误发送到Exceptionless服务。

  6. 您还可以发送已处理的错误,功能使用或日志消息以及其他信息(请参阅特定客户端的文档)。

自托管选件#

我们整理了综合的文档,以帮助您开始使用自托管的Exceptionless实例。您可以在此处找到该文档。

发送您的第一个赛事#

一旦确定了帐户并创建了项目,就可以开始接收事件。让我们看一下向Exceptionless发送一个简单的事件。

开机自检 api/v2/events

curl --location --request POST "https://api.exceptionless.com/api/v2/events" \
--header 'Authorization: Bearer YOUR_PROJECT_TOKEN' \
--header 'Content-Type: application/json' \
--data-raw '{ "type": "error", "date":"2030-01-01T12:00:00.0000000-05:00", "@simple_error": { "message": "Simple Exception", "type": "System.Exception", "stack_trace": " at Client.Tests.ExceptionlessClientTests.CanSubmitSimpleException() in ExceptionlessClientTests.cs:line 77" } }'

您已经创建了帐户,现在呢?让我们开始您的项目设置,然后我们将深入研究一些最佳实践和方法,以增强您对Exceptionless的使用。

客户端集成

ExceptionlessClient配置编号

以下示例显示了可以在应用程序中配置Exceptionless的各种方式(配置文件,属性或代码)。

配置与代码#

using Exceptionless;var client = new ExceptionlessClient(c => {c.ApiKey = "YOUR_API_KEY";c.SetVersion(version);
});// You can also set the api key directly on the default instance.
ExceptionlessClient.Default.Configuration.ApiKey = "YOUR_API_KEY"

配置与属性#

您还可以使用以下属性配置Exceptionless:

using Exceptionless.Configuration;
[assembly: Exceptionless("YOUR_API_KEY")]

仅当在条目或调用程序集中定义了Exceptionless程序集属性时,才会选择该属性。如果将上述属性放置在其他位置,则需要在启动过程中调用以下方法。

using Exceptionless;
ExceptionlessClient.Default.Configuration.ReadFromAttributes(typeof(MyClass).Assembly)

配置与环境变量#

您还可以添加环境变量或应用程序设置,并使用键名Exceptionless:ApiKey和yourYOUR_API_KEY作为值。

使用的Web.config #

可以使用web.config或app.config中的config部分配置无例外,具体取决于您拥有的项目类型。安装正确的NuGet软件包应自动添加必要的配置元素。它看起来应该像这样:

<?xml version="1.0" encoding="utf-8"?>
<configuration><configSections><p name="exceptionless" type="Exceptionless.ExceptionlessSection, Exceptionless" /></configSections><!-- attribute names are cases sensitive --><exceptionless apiKey="API_KEY_HERE" />...<system.webServer><modules><remove name="ExceptionlessModule" /><add name="ExceptionlessModule" type="Exceptionless.Mvc.ExceptionlessModule, Exceptionless.Mvc" /></modules>...</system.webServer>
</configuration>

版本号

通过指定应用程序版本,您可以启用其他功能。默认情况下,将尝试从程序集属性中解析应用程序版本。但是,最好使用以下代码指定应用程序版本。

using Exceptionless;
ExceptionlessClient.Default.Configuration.SetVersion("1.2.3");

离线存储#

事件也可以持久保存到磁盘以用于脱机情况,或确保在应用程序重新启动之间不会丢失任何事件。选择文件夹路径时,请确保应用程序在其下运行的身份具有对该文件夹的完全权限。

请注意,这会增加一些开销,因为事件在提交时需要序列化到磁盘,因此不建议用于高吞吐量日志记录方案。

配置文件号

<!-- Use Folder Storage -->
<exceptionless apiKey="YOUR_API_KEY" storagePath="PATH OR FOLDER NAME" />

代码#

// Use folder storage
ExceptionlessClient.Default.Configuration.UseFolderStorage("PATH OR FOLDER NAME");
// Use isolated storage
ExceptionlessClient.Default.Configuration.UseIsolatedStorage();

禁用无例外#

您可以使用该Enabled设置禁用Exceptionless在测试过程中报告事件。

配置文件号

<exceptionless apiKey="YOUR_API_KEY" enabled="false" />

属性编号

using Exceptionless.Configuration;
[assembly: Exceptionless("YOUR_API_KEY", Enabled=false)]

自托管选项#

还可以将Exceptionless客户端配置为将数据发送到您的自托管实例。通过将设置serverUrl设置为指向您的Exceptionless实例来配置它。

配置文件号

<exceptionless apiKey="YOUR_API_KEY" serverUrl="http://localhost" />

属性编号

using Exceptionless.Configuration;
[assembly: Exceptionless("YOUR_API_KEY", ServerUrl = "http://localhost")]

https://github.com/exceptionless/Exceptionless

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

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

相关文章

xilinx7中管脚mrcc和srcc_Xilinx 7系列FPGA架构之SelectIO结构(一)

引言&#xff1a;从本文开始我们介绍Xilinx 7系列FPGA的SelectIO资源结构及使用&#xff0c;我们在进行FPGA外设硬件及软件设计时&#xff0c;如ADC、PHY、DDR3等&#xff0c;通常会涉及到该资源。本节我们介绍以下知识点&#xff1a;SelectIO资源概述及结构SelectIO管脚通用设…

IdentityServer4系列 | 混合模式

一、前言在上一篇关于授权码模式中&#xff0c; 已经介绍了关于授权码的基本内容&#xff0c;认识到这是一个拥有更为安全的机制,但这个仍然存在局限&#xff0c;虽然在文中我们说到通过后端的方式去获取token,这种由web服务器和授权服务器直接通信&#xff0c;不需要经过用户的…

3m格式的文件怎么转换成mp3_一招就能让PDF与其他格式文件相互转换,这样的大招你值得拥有...

大家都知道&#xff0c;现在不少的大佬比起用Word、Excel等等这些格式文件&#xff0c;它们更喜欢使用PDF文件。而我们不管是将Word、Excel等文件转换成PDF&#xff0c;还是将PDF转换成其他格式文件&#xff0c;都是一件麻烦事&#xff0c;更别说在手机上操作这一切了。别担心&…

如何使用 C# 中的 Tuple

开局一张图&#xff0c;首先声明的是 Tuple 不是什么新鲜概念&#xff0c;在编程语言 F#&#xff0c;Python 中早就有这个了&#xff0c;Tuple 是一种 有序的&#xff0c;有限不可变的&#xff0c;支持混杂类型的固定个数的 一种数据结构&#xff0c;有些朋友可能就想问了&…

中设置colorbar_【值得收藏】如何画出学术论文中需要的各种精美插图,看这一篇就够了!...

本文整理自知乎问答&#xff0c;仅用于学术分享&#xff0c;著作权归作者所有。如有侵权&#xff0c;请联系后台作删文处理。方法一作者&#xff5c;冯昱尧https://www.zhihu.com/question/21664179/answer/18928725强烈推荐 Python 的绘图模块 matplotlib: python plotting 。…

一文说通C#中的异步迭代器

今天来写写C#中的异步迭代器 - 机制、概念和一些好用的特性迭代器的概念迭代器的概念在C#中出现的比较早&#xff0c;很多人可能已经比较熟悉了。通常迭代器会用在一些特定的场景中。举个例子&#xff1a;有一个foreach循环&#xff1a;foreach (var item in Sources) {Console…

GraphQL:Descriptor Attributes

GraphQL 既是一种用于 API 的查询语言也是一个满足你数据查询的运行时。GraphQL 对你的 API 中的数据提供了一套易于理解的完整描述&#xff0c;使得客户端能够准确地获得它需要的数据&#xff0c;而且没有任何冗余&#xff0c;也让 API 更容易地随着时间推移而演进&#xff0c…

idea怎么把代码放到git_在IDEA中如何初始化Git,把项目推送到Git上

在IDEA中如何初始化Git&#xff0c;把项目推送到Git上登录Gitee(码云)账号&#xff0c;新建仓库先按如下步骤简单新建一个仓库&#xff1a;创建成功后&#xff0c;会出现下图中所示的原始文件&#xff1a;在IDEA上的Terminal中进行操作注意&#xff1a;可能有些朋友刚打开Termi…

大会线上同步直播, 来不到现场也可以线上看直播,以及参会秘籍

紧急提醒&#xff1a;还有1天&#xff01;2020.NET开发者大会就要开幕啦&#xff01;你都做好参会准备没有&#xff1f;特殊时期&#xff0c;为方便小伙伴们顺利参会&#xff0c;小编特意整理了这篇大会参会攻略&#xff0c;大到各种日程安排、小到签到、出行、防疫等&#xff…

大曾幽默打油诗_这才是真正的幽默打油诗,逗人一笑,又引人深思!

阅读本文前&#xff0c;请您先点击上面的蓝色字体“点点星光”&#xff0c;再点击“关注”&#xff0c;这样您就可以继续免费收到文章了。每天都有分享。完全是免费订阅&#xff0c;请放心关注来源&#xff1a;诗词天地大曾 &#xff0c;曾初良&#xff0c;也乐斋主&#xff0c…

如何使用第三方日志记录提供程序替代.NET Core中的内置程序

背景.NET Core 支持适用于各种内置和第三方日志记录提供程序的日志记录 API。 先来看下如何将日志记录 API 与内置提供程序一起使用。调用 CreateDefaultBuilder&#xff0c;这将添加以下日志记录提供程序&#xff1a;控制台调试EventSourceEventLog&#xff1a;仅限 Windowspu…

mysql新加不了数据库_MySQL数据库之mysql增加新用户无法登陆解决方法

本文主要向大家介绍了MySQL数据库之mysql增加新用户无法登陆解决方法 &#xff0c;通过具体的内容向大家展现&#xff0c;希望对大家学习MySQL数据库有所帮助。今天安装openstack folsom版本&#xff0c;安装完mysql&#xff0c;为各个服务增加对应的数据库和用户后&#xff0c…

编程去除背景绿幕抠图,基于.NET+OpenCVSharp

摘要&#xff1a;本文介绍了一种使用OpenCVSharp对摄像头中的绿幕视频进行实时“抠人像、替换背景”的方式&#xff0c;对于项目中的算法进行了分析。本文中给出了简化OpenCVSharp中Mat、MatExpr等托管资源释放的方法。本文还介绍了“高效摄像头播放控件”以及和OpenCVSharp的性…

.NET 云原生架构师训练营(模块二 基础巩固 依赖注入)--学习笔记

2.2.1 核心模块--依赖注入什么是依赖注入.NET Core DI 生命周期服务设计服务范围检查ASP.NET Core 依赖注入&#xff1a;https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/dependency-injection?viewaspnetcore-5.0什么是依赖注入Dependency injection 依赖注入Inv…

vue ref 绑定的事件需要移除吗_Vue易遗忘的基础复习(二)

数据请求Vue-resource请求在Vue2.0之后已经被舍弃2. fetch请求因为传统 Ajax &#xff08;指 XMLHttpRequest&#xff09;存在一些令人头疼的问题&#xff1a;配置和调用方式非常混乱&#xff0c;而且基于事件的异步模型写起来也没有现代的 Promise&#xff0c;generator/yield…

如何在 ASP.NET Core 中使用 API 分析器

ASP.NET Core 2.2 引入了 API 分析器&#xff0c;它有利于提高 API 的文档化&#xff0c;API分析器 可以应用在任何带有 ApiController 特性的 Controller 上&#xff0c;本篇就和大家一起讨论下。安装 API 分析器 如果你使用的是 ASP.NET Core 2.2 的话&#xff0c;用 Visual …

.net mysql字符串截取_【MySQL】字符串截取之SUBSTRING_INDEX和【MySQL】字符串四则运算...

substring_index(str,delim,count)str:要处理的字符串delim:分隔符count:计数例子&#xff1a;strwww.google.com1.count是正数&#xff0c;那么就是从左往右数&#xff0c;第N个分隔符的左边的全部内容SELECT SUBSTRING_INDEX(www.google.com,.,1);结果是&#xff1a;wwwSELEC…

用C#+Selenium+ChromeDriver 爬取网页,完美模拟真实的用户浏览行为

背景Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中&#xff0c;就像真正的用户在操作一样。而对于爬虫来说&#xff0c;使用Selenium操控浏览器来爬取网上的数据那么肯定是爬虫中的杀手武器。这里&#xff0c;我将介绍selenium 谷歌浏览器的一般使…

mysql 设置宽松模式_mysql5.6 sql_mode设置为宽松模式

最近遇到一个很奇怪的事情由于数据人员的需求&#xff0c;现在需要修改mysql的sql_modesql_mode默认是sql_modeNO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES这时候我在/etc/my.cnf配置如下sql_modeNO_ENGINE_SUBSTITUTION重启后还是mysql> SELECT GLOBAL.sql_mode;---------…

ASP.NET Core ActionFilter引发的一个EF异常

最近在使用ASP.NET Core的时候出现了一个奇怪的问题。在一个Controller上使用了一个ActionFilter之后经常出现EF报错。InvalidOperationException: A second operation started on this context before a previous operation completed. Any instance members are not guarante…