您好,登錄后才能下訂單哦!
如何分析.Net Core集成Exceptionless分布式日志功能以及全局異常過濾,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
導入命名空間后,并使用如下代碼就可以簡單地提交異常日志:
try {
throw new ApplicationException(Guid.NewGuid().ToString());
} catch (Exception ex) {
ex.ToExceptionless().Submit();
}
當然你還可以為發(fā)送的事件添加額外的標記信息,比如坐標,標簽,以及其他的用戶相關的信息等等
你可以在通過SubmittingEvent 事件設置全局的忽略異常信息添加一些自定義信息等等
有時候,程序中需要對日志信息做非常詳細的記錄,比如在開發(fā)階段。這個時候可以配合 log4net 或者 nlog 來聯(lián)合使用 exceptionless,詳細可以查看這個官方的 [示例][https://github.com/exceptionless/Exceptionless.Net/tree/master/samples/Exceptionless.SampleConsole]。
如果你的程序中有在短時間內(nèi)生成大量日志的情況,比如一分鐘產(chǎn)生上千的日志。這個時候你需要使用內(nèi)存存儲(in-memory store)事件,這樣客戶端就不會將事件系列化的磁盤,所以會快很多。這樣就可以使用Log4net 或者 Nlog來將一些事件存儲到磁盤,另外 Exceptionless 事件存儲到內(nèi)存當中。
1.首先簡單地封裝一個ILoggerHelper接口
既然有了接口,那么當然得實現(xiàn)它了
當然實現(xiàn)好了,可別忘了依賴注入哦
//注入ExceptionlessLogger服務 services.AddSingleton<ILoggerHelper, ExceptionlessLogger>();
這時候該寫一個全局異常過濾器了
全局過濾器寫好了,怎么讓它生效呢,客觀別急啊,上正菜
//添加驗證 services.AddMvc(options=> { options.Filters.Add<GlobalExceptionFilter>(); }).AddFluentValidation();
哈哈,沒什么說的了,代碼都已經(jīng)寫好了,剩下的就是上代碼測試結果了。我這里只是簡單地api測試下,萬能的ValuesController登場:
這里是直接拋出異常,不進行trycatch,這時候異常會被全局過濾器捕獲,然后放到Exceptionless的Log里面,別問我為什么會在log里面,因為我全局過濾器代碼里面已經(jīng)寫明了,不明白的回去看代碼,然后看接口調用的實現(xiàn)方法。下面上結果:
點進去,看看詳細信息:
再測試下使用try catch捕獲的異常處理,這時候異常信息會被提交到Exception這個里面。直接上代碼吧
到exceptionless里面看看不活的異常吧。打字很累直接上圖吧
點進去看看詳細信息,有三個tab,下面之粘貼一個圖片了:
關于如何分析.Net Core集成Exceptionless分布式日志功能以及全局異常過濾問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業(yè)資訊頻道了解更多相關知識。
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。