تسجيل الاستثناءات غير المعلنة باستخدام NLOG؟ هل يجب استخدام Elmah و Nlog معًا؟

StackOverflow https://stackoverflow.com/questions/4066042

سؤال

أنا أستخدم Elmah في مشاريع ASP.NET MVC وأحب بساطتها حقًا. لكنني كنت بحاجة إلى القدرة على تسجيل بعض الأحداث في الكود الخاص بي بطريقة log.info ("الرسالة"). لأن Elmah لا توفر تلك القدرة التي بدأت في النظر إلى Nlog.

تتبادر إلى الذهن بعض الأسئلة:

  1. هل يستخدم كل من Elmah و Nlog Overkill؟ باستخدام Elmah للاستثناءات غير المعلنة و Nlog لكل شيء آخر؟
  2. هل من الممكن تكوين NLOG لتسجيل الاستثناءات غير المعلنة في nlog.config أم هل هناك حاجة إلى رمز مخصص؟
  3. إذا كان هناك حاجة إلى رمز مخصص ، فأين سيكون أفضل مكان لإضافته؟ طريقة Onexception في إطار MVC؟ ملف global.asax؟

ردود الفعل آني موضع تقدير كبير. حتى الآن لم أجد أي منشورات جيدة في هذا الشأن؟

هل كانت مفيدة؟

المحلول

يمكنك في الواقع تشغيل تنبيه من Elmah. مثل ذلك:

 ErrorSignal.FromCurrentContext().Raise(new System.ApplicationException("An error occured in SendEmail()", ex));

لا تنس إضافة إشارة إلى elmah.dll وأضف using Elmah; إلى الملف. نرى هنا لمزيد من الأمثلة قليلا.

نصائح أخرى

الإجابة على السؤال 2 ، قرأت للتو هذه المقالة حيث يشرح كيفية تسجيل استثناءات غير معالجة مع NLOG. في الأساس يضيف في global.asax.cs ملفات مثل:

protected void Application_Error() 
{
    Exception lastException = Server.GetLastError();
    NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger();
    logger.Fatal(lastException);
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top