如何在 C# 中使用 Exceptionless
背景
“Exceptionless”一詞的定義是:無(wú)例外。Exceptionless可為您的JavaScript,Node,.NET Core,ASP.NET,Web API,WebForms,WPF,控制臺(tái)和MVC應(yīng)用程序提供實(shí)時(shí)錯(cuò)誤報(bào)告。它將收集到的信息組織成簡(jiǎn)單的可操作數(shù)據(jù),這些數(shù)據(jù)將幫助您的應(yīng)用程序變得異常異常!
Exceptionless專注于實(shí)時(shí)可配置性,這使其與其他錯(cuò)誤監(jiān)視服務(wù)區(qū)分開來(lái)。如果其他人可能需要更改代碼中的配置并重新部署應(yīng)用程序,則Exceptionless允許您進(jìn)行更改而無(wú)需更改已部署的代碼。
入門
Exceptionless為您提供跟蹤錯(cuò)誤,日志和事件的工具,同時(shí)指導(dǎo)您尋求可行的解決方案。首先,您需要確定自己是無(wú)主機(jī)例外還是使用我們的托管版本。如果您選擇使用我們的托管版本,則可以免費(fèi)開始使用。
托管選項(xiàng)#
創(chuàng)建一個(gè)帳戶
注冊(cè)后,系統(tǒng)將提示您創(chuàng)建第一個(gè)項(xiàng)目。
通過(guò)單擊項(xiàng)目列表頁(yè)面上的“下載并配置客戶端”操作按鈕來(lái)配置您的應(yīng)用程序。
選擇您的項(xiàng)目類型,然后按照說(shuō)明進(jìn)行操作。
您的應(yīng)用程序現(xiàn)在將自動(dòng)將所有未處理的錯(cuò)誤發(fā)送到Exceptionless服務(wù)。
您還可以發(fā)送已處理的錯(cuò)誤,功能使用或日志消息以及其他信息(請(qǐng)參閱特定客戶端的文檔)。
自托管選件#
我們整理了綜合的文檔,以幫助您開始使用自托管的Exceptionless實(shí)例。您可以在此處找到該文檔。
發(fā)送您的第一個(gè)賽事#
一旦確定了帳戶并創(chuàng)建了項(xiàng)目,就可以開始接收事件。讓我們看一下向Exceptionless發(fā)送一個(gè)簡(jiǎn)單的事件。
開機(jī)自檢?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" } }'您已經(jīng)創(chuàng)建了帳戶,現(xiàn)在呢?讓我們開始您的項(xiàng)目設(shè)置,然后我們將深入研究一些最佳實(shí)踐和方法,以增強(qiáng)您對(duì)Exceptionless的使用。
客戶端集成
ExceptionlessClient配置編號(hào)
以下示例顯示了可以在應(yīng)用程序中配置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")]僅當(dāng)在條目或調(diào)用程序集中定義了Exceptionless程序集屬性時(shí),才會(huì)選擇該屬性。如果將上述屬性放置在其他位置,則需要在啟動(dòng)過(guò)程中調(diào)用以下方法。
using Exceptionless; ExceptionlessClient.Default.Configuration.ReadFromAttributes(typeof(MyClass).Assembly)配置與環(huán)境變量#
您還可以添加環(huán)境變量或應(yīng)用程序設(shè)置,并使用鍵名Exceptionless:ApiKey和yourYOUR_API_KEY作為值。
使用的Web.config?#
可以使用web.config或app.config中的config部分配置無(wú)例外,具體取決于您擁有的項(xiàng)目類型。安裝正確的NuGet軟件包應(yīng)自動(dòng)添加必要的配置元素。它看起來(lái)應(yīng)該像這樣:
<?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>版本號(hào)
通過(guò)指定應(yīng)用程序版本,您可以啟用其他功能。默認(rèn)情況下,將嘗試從程序集屬性中解析應(yīng)用程序版本。但是,最好使用以下代碼指定應(yīng)用程序版本。
using Exceptionless; ExceptionlessClient.Default.Configuration.SetVersion("1.2.3");離線存儲(chǔ)#
事件也可以持久保存到磁盤以用于脫機(jī)情況,或確保在應(yīng)用程序重新啟動(dòng)之間不會(huì)丟失任何事件。選擇文件夾路徑時(shí),請(qǐng)確保應(yīng)用程序在其下運(yùn)行的身份具有對(duì)該文件夾的完全權(quán)限。
請(qǐng)注意,這會(huì)增加一些開銷,因?yàn)槭录谔峤粫r(shí)需要序列化到磁盤,因此不建議用于高吞吐量日志記錄方案。
配置文件號(hào)
<!-- 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();禁用無(wú)例外#
您可以使用該Enabled設(shè)置禁用Exceptionless在測(cè)試過(guò)程中報(bào)告事件。
配置文件號(hào)
<exceptionless apiKey="YOUR_API_KEY" enabled="false" />屬性編號(hào)
using Exceptionless.Configuration; [assembly: Exceptionless("YOUR_API_KEY", Enabled=false)]自托管選項(xiàng)#
還可以將Exceptionless客戶端配置為將數(shù)據(jù)發(fā)送到您的自托管實(shí)例。通過(guò)將設(shè)置serverUrl設(shè)置為指向您的Exceptionless實(shí)例來(lái)配置它。
配置文件號(hào)
<exceptionless apiKey="YOUR_API_KEY" serverUrl="http://localhost" />屬性編號(hào)
using Exceptionless.Configuration; [assembly: Exceptionless("YOUR_API_KEY", ServerUrl = "http://localhost")]https://github.com/exceptionless/Exceptionless
總結(jié)
以上是生活随笔為你收集整理的如何在 C# 中使用 Exceptionless的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: ASP VNext 开源服务容错处理库P
- 下一篇: IdentityServer4系列 |