• 如何在 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>
    <section 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

  • 相关阅读:
    2016-10-17: source insight插件
    Reactor模式通俗解释
    2016-09-19: linux后台运行
    2016-08-16: 检测函数是否存在的C++模板
    2016-08-16: copy-and-swap
    2016-08-15:从YUV420P中提取指定大小区域
    2016-08-15: C++ traits
    2016-08-05:samba服务器配置
    LINQ 根据指定属性名称对序列进行排序
    Resharper
  • 原文地址:https://www.cnblogs.com/lyl6796910/p/14073891.html
Copyright © 2020-2023  润新知