پیکربندی میان افزار ثبت خطاها (ELM) در ASP.NET Core
یکشنبه 24 اردیبهشت 1396ELM یا همان Error Logging Middleware یک ماژول بسیار قدرتمند برای مدیریت و ثبت گزارش های خطاهای رخ داده شده در برنامه است که یک جایگزین بسیار خوب و کامل برای ELMAH است که قابلیت استفاده در ورژن های جدید خانواده DotNet را دارد.
همانطور که در مقاله ELMAH گفته شده بود، ELMAH محبوبترین و یکی از راحت ترین ماژول ها برای مدیریت خطاهای برنامه های .net است. بعد از راه اندازی elmah.io، کتابخانه متن باز elmah دیگر بروز رسانی نشد. ورژن فعلی elmah دیگر کارایی ندارد، چراکه این ماژول بر اساس Asp.Net 4.x طراحی شده است. با استفاده از نمونه اولیه ELM می توان خطاهای کنترل نشده را به خوبی مشاهده و ثبت کرد. شما می توانید ELM را به از طریق Package Management Console یا به کمک Nuget package manager نصب کنید.
نصب از طریق nuget
PM> Install-Package Microsoft.AspNetCore.Diagnostics.Elm
یا نصب از روش زیر
"dependencies": { "Microsoft.NETCore.App": { "version": "1.0.1", "type": "platform" }, "Microsoft.AspNetCore.Diagnostics": "1.1.0", "Microsoft.AspNetCore.Diagnostics.Elm": "0.2.0", "Microsoft.AspNetCore.Mvc": "1.0.1", "Microsoft.AspNetCore.Razor.Tools": { "version": "1.0.0-preview2-final", "type": "build" },
بعد از آنکه ماژول را با موفقیت نصب کردید، وقت پیکربندی ELM است. فایل Startup.cs
را باز کرده و متد ConfigureServices
را پیدا کنید تا ماژول ELM را با کمک یک متد از نوع extension که نام آن AddElm
می باشد ثبت کنید.
public void ConfigureServices(IServiceCollection services) { // Add framework services. services.AddMvc(); services.AddElm(options => { options.Path = new PathString("/elm"); options.Filter =(name, level) => level == LogLevel.Error; }); }
LogLevel
یک مقدار از نوع
enum
است که نوع و شدت لاگ گیری را معین می کند. در ادامه
LogLevel
هایی که می توانید از آنها در
ELM استفاده کنید آورده شده است.
Trace
لاگ هایی که دارای بیشترین میزان توضیحات هستند. این توضیحات ممکن است شامل داده های با اهمیت برنامه باشند. این توضیحات به صورت پیشفرض نمایش غیرفعال هستند و نباید در محیط های واقعی استفاده شوند.
Debug
این نوع از لاگ ها برای بررسی ارورها، هنگام توسعه سیستم استفاده می شوند. این لاگ ها باید حاوی اطلاعات مفیدی برای دیباگ کردن باشد و اطلاعات طولانی نداشته باشند.
Information
لاگ هایی که جریان اصلی برنامه را مشخص می کنند. این لاگ ها باید حاوی اطلاعات طولانی باشند.
Warning
لاگ هایی که رخدادهای غیر منتظره و غیر عادی در جریان برنامه را مشخص می کند، اما این رخدادها و اتفاقات باعث توقف اجرای برنامه نمی شوند.
Error
ثبت لاگ رخداد هایی که در هنگام اجرای برنامه باعث توقف اجرا و شکست در اجرای برنامه می شوند. این لاگ ها باید در لحظه گزارش شوند تا برطرف گردند.
Critical
لاگ هایی که اهمیت آنها بسیار زیاد است، مثلا برای مواردی که باعث خرابی های غیر قابل تعمیر در سیستم می شود و اتفاق های این چنین که حتما باید در سریع ترین زمان ممکن به مدیر سیستم اعلام شوند.
None
از این نوع LogLevel
برای عدم ثبت لاگ ها استفاده می شود، تا دیگر در سیستم لاگ ثبت نشود.
بعد از اینکه این سرویس پیکربندی شد، متد Configure
را پیدا کرده و کدهای زیر را به آن اضافه کنید. در اینجا app.UseElmPage()
برای تنظیم آدرس
صفحه
ELM
است و
app.UseElmCapture()
برای اضافه کردن
ElmLoggerProvider استفاده می شود.
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) { loggerFactory.AddConsole(Configuration.GetSection("Logging")); loggerFactory.AddDebug(); app.UseElmPage(); app.UseElmCapture(); app.UseMvc(routes => { routes.MapRoute( name: "default", template: "{controller=Home}/{action=Index}/{id?}"); }); }
صفحه ELM دارای گزینه های مختلفی برای فیلتر کردن لاگ ها براساس خطا، هشدار، اطلاعیه و دیگر پارامتر ها است.
آموزش asp.net mvc
- ASP.net MVC
- 2k بازدید
- 2 تشکر