TGViewer
DotNetZoom DotNetZoom @dotnetzoom · 2.82K subscribers
Post #1099 2.96K
✅ لاگ کردن خطاها در ASP .NET Core توسط Exception Filter

در ASP .NET Core قابلیتی داریم به نام Filter که این اجازه رو بهمون میده که در مراحل خاصی از پردازش Request وارده، کد های دلخواهمون رو اجرا کنیم. مثلا میتونیم قبل یا بعد از اجرای اکشن، کدی رو اجرا کنیم
به عنوان مثال، یکی از پرکاربرد ترین اکشن فیلتر ها، همین اتیریبیوت [Authorize] هست که قبل از اجرای اکشن مربوطه، احراز هویت رو چک میکنه و در صورتی که کاربر لاگین نکرداه باشه یا دسترسی نداشته باشه، پردازش رو خاتمه میده

این قابلیت بهمون این امکان رو میدن که یه سری از کار های تکراری (یا بهتره بگم cross-cutting concerns) که در لازمه طی پردازش یک درخواست انجام بشن رو براحتی و بدون تکرار کردن کد ها هندل کنیم.

از جمله کار های جالبی که میشه با فیلتر ها انجام داد:

1️⃣ مثلا میتونیم مقادیر ورودی کاربر رو قبل از اجرای اکشن ها به صورت خودکار اعتبار سنجی (ModelState Validation) کنیم تا لازم نباشه ابتدای هر اکشن متد ModelState.IsValid رو چک کنیم

2️⃣ میتونیم خروجی API ها رو یک دست کنیم تا طبق یک ساختار واحد و استاندارد به کلاینت فرستاده بشن (که این مورد در API نویسی بسیار مرسوم هست)

3️⃣ میتونیم مدت زمان اجرای هر اکشن رو اندازه گیری کنیم و در صورتی که بیش از یه مدت مشخصی (مثلا 15 ثانیه) طول بکشه اون رو لاگ کنیم یا یه هشدار صادر کنیم

در ASP .NET Core، فیلتر های مختلفی وجود داره که هرکدوم کاربرد خودشون رو دارن. یکی از این فیلتر ها ExceptionFilter هست که به هنگام رخ دادن Exception ها اجرا میشه
در این مقاله میخوایم به بررسی کامل ExceptionFilter ها بپردازیم و در نهایت یک ExceptionFilter سفارشی بنویسیم که تمام خطا هایی که توی MVC Pipeline مون رخ میده رو متوجه بشیم و توسط EF Core، اون ها رو توی دیتابیس لاگ کنیم

پس با من همراه باشید
https://vrgl.ir/RwHGM
#آرمین_شعیبی_نژاد
__________________
@DotNetZoom
More from @dotnetzoom
  1. Dec 27, 2021امکانات LINQ در NET 6. ✅ ۱- امکان مشخص کردن مقدار پیش‌فرض در OrDefault* var item1 = list1.…
  2. Dec 6, 2021انتقال داده ها به واسطه Azure Service Bus امروزه سرعت انتقال داده‌ها از اهمیت بالایی برخور…
  3. Nov 29, 2021اضافه شدن قابلیت Temporal Table به EF Core 6 ➖ مایکروسافت در سال 2016 قابلیت Temporal Tabl…
  4. Nov 10, 2021همه چیز در مورد NET Core 6. دیروز نسخه رسمی NET Core 6. به همراه نسخه رسمی Visual Studio 2…
  5. Nov 10, 2021نسخه نهایی NET 6.0 منتشر شد. نسخه 6.0 دات نت به صورت طولانی مدت پشتیبانی میشود (LTS) و توس…
  6. Nov 8, 2021کنفرانس NET. Conf هر سال خبرهای هیجان‌انگیزی داره. امسال هم NET. خبر های خوب و جذابی داره…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →