استفاده از NLog در ASP.NET Core ، در این مقاله، نحوه ی نوشتن خطاها در فایل با استفاده از NLog را خواهیم آموخت. Error Logging یکی از ویژگی های کلیدی توسعه ی نرم افزار می باشد.
اغلب برنامه هایی که می نویسیم باید دارای مکانیزم گزارش گیری باشند تا بتوان گزارش خطا را هنگامی که برخی از exception ها رخ می دهند، مشاهده کرد.
ما آزمون های واحد بسیاری می نویسیم، آزمون های دستی بسیاری را در توسعه انجام می دهیم اما همچنان برخی حالات وجود دارد که نمی توانیم پیش بینی کنیم باعث خطا خواهند شد.
برای مثال، برخی کدها در محیط های staging، و تست به خوبی کار می کنند اما هنگامی که رو نسخه پروداکشن می رود شکست می خورد.
بنابراین در کجا جستجو کنیم که مسئله چه می تواند باشد؟
همانطور که می دانیم، در محیط های تولیدی، اغلب سیستم ها Visual Studio برای debug/اشکال زدایی کد را ندارند.
برای مشاهده ی این خطاهای استثنائی، فایل های گزارش بطور گسترده مورد استفاده قرار می گیرند.
NLog یک فریمورک گزارش گیری بسیار خوب جهت حصول گزارشگیری در برنامه های .NET است.
NLog در ASP.NET Core
اگرقسمت اول آموزش های ما را نخوانده اید همواره میتوانید در لینک زیر مشاهده کنید.
- NLog چیست ؟
- نحوه ی پیاده سازی NLog در Web API
- مقدمهای بر NLog با استفاده از ASP.NET Core
- نحوهی بایگانی گزارش های NLog به همراه ASP.NET Core
- استفاده از Event Log در ASP.NET Core
پیکربندی آن بسیار آسان بوده و اطلاعات گزارشگیری می توانند بر فایل ها، پایگاه داده، گزارش های رویداد و فایل های پیمایش ASP.NET نوشته شوند.
بیایید مثالی ساده از نحوه ی گزارش گیری با استفاده از NLog در یک برنامه ی ASP.NET MVC را ببینیم.
اکنون یک برنامه ی ساده ی ASP.NET MVC ایجاد و مراجع NLog Library را با استفاده از NuGet دریافت خواهیم کرد.
حال NLog را از NuGet در اختیار داریم.
یک فایل پیکربندی به نام NLog.Config، همانطور که در زیر نشان داده شده، بر روی پروژه ایجاد خواهیم کرد.
NLog.Config File
<?xml version="1.0" encoding="utf-8" ?> <nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" autoReload="true" throwExceptions="false" internalLogFile="G:\NLogErrors\log.txt"> <extensions> <!-- load NLog.Extended to enable ASP.NET-specific functionality --> <add assembly="NLog.Extended" /> </extensions> <!--Define Various Log Targets like files, database or asp.net trace files--> <targets> <target name="console" xsi:type="ColoredConsole" layout="${message}" /> <!--Write logs to File where we want to write error logs--> <target name="file" xsi:type="File" fileName="G:\NLogErrors\ErrorLogFile.log" layout=" --------------------- ${level}(${longdate})${machinename}-------------------- ${newline} ${newline} Exception Type:${exception:format=Type}${newline} Exception Message:${exception:format=Message}${newline} Stack Trace:${exception:format=Stack Trace}${newline} Additional Info:${message}${newline} "> </target> </targets> <rules> <logger name="*" minlevel="trace" writeTo="file" /> </rules> </nlog>
کمی کد برای گزارش گیری خواهیم نوشت.در Home Controller، عمل Index، به اجبار یک استثناء ایجاد و آن را در logger (گزارش گیر) با استفاده از متد logger.ErrorException() خواهیم نوشت.
کد کنترل کننده
using NLog; using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; namespace NlogWithMVC.Controllers { public class HomeController : Controller { Logger logger = LogManager.GetCurrentClassLogger(); public ActionResult Index() { try { int x = 0; int y = 5; int z = y / x; } catch (Exception ex) { logger.ErrorException("Error occured in Home controller Index Action", ex); } return View(); } public ActionResult About() { ViewBag.Message = "Your application description page."; return View(); } public ActionResult Contact() { ViewBag.Message = "Your contact page."; return View(); } } }
هنگامی که صفحه را اجرا می کنیم، مشاهده می کنیم که فایل های گزارش در فایلی که در فایل NLog.Config تعریف شده، ایجاد می شود.
خروجی در زمانی که صفحه را اجرا می کنیم بصورت زیر است:
دیدیم که چگونه گزارش گیری را در یک برنامه ی ASP.NET MVC با استفاده از NLog مدیریت کنیم.
سپاس از توجهتان.
هیچ دیدگاهی نوشته نشده است.