مقدمة
بعد إكمال تثبيت ASP.NET Core، يُبلَّغ عن الاستثناءات غير المعالَجة تلقائياً. احقنLerixClient للإبلاغ عن
الاستثناءات المعالَجة بنفسك مع سياق إضافي.
الالتقاط التلقائي
تسجّلAddLerix وUseLerix أمرين:
- وسيط. يمرّ عبره كل استثناء يفلت من الوسائط التي تليه (التوجيه،
المصادقة، نقاط النهاية). يبلّغ افتراضياً عن كل استثناء باستثناء ما يحمل
رمز حالة أقل من 500، مثل
BadHttpRequestExceptionبرمز 400. ثم يعيد الوسيط إلقاء الاستثناء، فيبنيUseExceptionHandlerأو صفحة استثناءات المطوّر الاستجابة نفسها التي كان سيبنيها بدون Lerix. لا يُبلَّغ عن الطلبات التي ألغاها العميل. - معالجات على مستوى العملية. يُبلَّغ عن
AppDomain.UnhandledExceptionوTaskScheduler.UnobservedTaskExceptionبنوعCrashوخطورةCritical. اضبطCaptureUnhandled = falseلتخطيها.
X-Request-Id (أو TraceIdentifier الخاص بـ ASP.NET)، تحت metadata.request.
تغيير ما يُبلَّغ عنه
تتلقىShouldCapture الاستثناء وHttpContext ورمز الحالة الذي سيُرسَل إن كان
معروفاً:
Program.cs
IgnorePaths اختصار لتخطي بادئات مسارات كاملة دون كتابة دالة.
ترتيب الوسائط
يجب أن يأتيUseLerix بعد UseExceptionHandler (الذي سيلتقط الاستثناء
أولاً لولا ذلك) وقبل الوسائط التي تريد تغطيتها. خط أنابيب نموذجي:
Program.cs
الإبلاغ عن خطأ يدوياً
LerixClient مسجَّل كـ singleton في الحاوية:
OrdersService.cs
CaptureException استثناءً أبداً وتكتمل عند قبول التقرير أو التخلي
عنه. يمكنك أيضاً تجاهل المهمة بـ _ = للمتابعة دون انتظار. استخدم
CaptureMessage لشيء لم يُلقَ كاستثناء:
المعاملات
قيم BugType
قيم BugSeverity
ما يُرفق بالتقرير
تتضمن تتبّعات المكدس الاستثناءات الداخلية، يسبق كلاً منها سطر
--- caused by ... ---.
الملفات وأرقام الأسطر
لا تضع .NET الملف ورقم السطر في تتبّعات المكدس إلا عندما تكون ملفات.pdb
الخاصة بتطبيقك متاحة وقت التشغيل. أضِف ملف Directory.Build.props في جذر
مستودعك:
Directory.Build.props
/_/، فهذا الإطار:
src/Api/Orders.cs:line 42. وينتج بناء
ContinuousIntegrationBuild الجذر /_/ نفسه.
إذا وصلت تتبّعات المكدس دون ملف أو سطر على الإطلاق، يسجّل الـ SDK تحذيراً
واحداً لكل عملية يشير إلى هذه الصفحة.
أعضاء LerixClient الأخرى
التعطيل في الاختبارات
اضبطEnabled = false لتحويل كل استدعاء إلى لا شيء دون تغيير الكود: