誰能幫我成功的Web請求的情況下登錄短信瞭解關於如何使用ELMAH和C#記錄的自定義消息,在成功的Web請求的情況下返回狀態碼200如何使用ELMAH和C#
有沒有類似於下面提到的方法:
Elmah.ErrorSignal.FromCurrentContext().Raise(ex);
記錄自定義消息。
代碼示例將非常有用。
感謝&問候, 桑托斯·庫馬爾Patro
誰能幫我成功的Web請求的情況下登錄短信瞭解關於如何使用ELMAH和C#記錄的自定義消息,在成功的Web請求的情況下返回狀態碼200如何使用ELMAH和C#
有沒有類似於下面提到的方法:
Elmah.ErrorSignal.FromCurrentContext().Raise(ex);
記錄自定義消息。
代碼示例將非常有用。
感謝&問候, 桑托斯·庫馬爾Patro
據我所知,ELMAH只處理異常(錯誤日誌記錄模塊和處理),但這種小伎倆,你可以把它記錄任何你想要的,只要你要
注意,這可能不是唯一或最佳的方法來解決你的問題
ErrorSignal.FromCurrentContext().Raise(new NotImplementedException("blah blah blah whatever you want")); //ELMAH Signaling
我意識到這一點,而遲到了,但我碰到這篇文章想進來也會向Elmah發佈一些「非例外」信息。
我開始用自定義名稱創建一個新的Exception
對象,該名稱將在我的數據庫的Type
字段中,但那不完全是我想要的。然後我注意到Elmah想要一個Error
對象。而Type
字段是{ get; set; }
,所以我有我的答案。
我創建了一個靜態輔助類,使每個我需要它的時候它更少的代碼:
public static class ElmahTools {
public static Error LogHangFireInfo(string message) {
var Result = new Error(new Exception(message));
Result.Type = "Hangfire Info";
return Result;
}
}
在這裏我要記錄的信息類的頂部,我增加了以下內容:
private static readonly Elmah.ErrorLog ErrorRepo = Elmah.ErrorLog.GetDefault(null);
在我的代碼,在這裏我想實際登錄信息
然後,我有以下幾點:
ErrorRepo.Log(ElmahTools.LogHangFireInfo($"Job: {context.BackgroundJob?.Id} state has changed from {context.OldStateName} to {context.NewState.Name}"));
我最初只是打算做:
new Error { Type = "My Custom Info", Message = "Some message" };
但是失敗,因爲TimeUtc
不是在充滿所以我只是簡單地創建一個相當空Error
與消息和改變正是我需要後(例如。 Type
。)
希望這可以幫助別人。
非常感謝。它幫助了我,但請你讓我知道有什麼方法可以替代代碼:新的NotImplementedException與一些自定義類,這可能會幫助我區分正在發生的其他類型異常。 –
嗨!如果它是從Exception類繼承的,那麼可以使用自定義類,因此它也可能是某種異常,此鏈接可能有所幫助: http://www.codeproject.com/Tips/90646/Custom-exceptions- in-C-NET –
祝你好運,如果有人有更好的方式來做到這一點,請告訴我們! (我也需要它!) 我真的很喜歡ELMAH,我在我的所有ASP.NET網站中都使用它,它在webservices項目中也能正常工作。 –