Skip to main content

مقدمة

بعد إكمال تثبيت 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
يحذف الـ SDK الجذر الحتمي (deterministic) /_/، فهذا الإطار:
يُبلَّغ عنه على أنه src/Api/Orders.cs:line 42. وينتج بناء ContinuousIntegrationBuild الجذر /_/ نفسه. إذا وصلت تتبّعات المكدس دون ملف أو سطر على الإطلاق، يسجّل الـ SDK تحذيراً واحداً لكل عملية يشير إلى هذه الصفحة.

أعضاء LerixClient الأخرى

التعطيل في الاختبارات

اضبط Enabled = false لتحويل كل استدعاء إلى لا شيء دون تغيير الكود: