NLog چیست؟

NLog چیست؟  در این مقاله، ساده ترین روش برای درک مفهوم Nlog را نشان خواهیم داد. همچنین نحوه و محل استفاده از Nlog را توضیح خواهیم داد. امیدوارم این مقاله به افرادی که هرگز از Nlog استفاده نکرده اند، کمک شایانی کند. بیایید به این موضوع بپردازیم.

Nlog چیست؟

Nlog یک پلتفرم log (گزارش های سیستمی) متن باز است. از طریق این پلتفرم، می توانیم از فعالیت یک برنامه گزارش بگیریم.

این کار مدیریت کد برنامه را آسان می کند. Nlog پشتیبانی چندپلتفرمی را ارائه می دهد.

مواردی که می توانیم از آن ها گزارش بگیریم

با استفاده از Nlog در یک برنامه، می توانیم از موارد ذکر شده ی زیر گزارش بگیریم.

  • Trace (پیمایش) : گزارش با جزئیات
  •  Debug (اشکال زدایی) : اطلاعات اشکال زدایی
  •  Info (اطلاعات) : پیام اطلاعاتی
  •  Warning (هشدار) : پیام های هشدار
  • Error (خطا) : پیام های خطا
  •  Fatal (خطاهای جدی/مهلک) : خطاهای بزرگ، که نیاز به توجه دارد

اهداف پایه

  •  فایل ها  می توانیم از پیام های خود در یک فایل گزارش تهیه کنیم.
  • پایگاه داده نیز می تواند با SQL Server، با استفاده از Nlog، کار کند.
  •  کنسول پیام ها را در یک C# Console Application نمایش می دهد.
  • ایمیل، می توانیم پیام گزارش را ایمیل کنیم.

یک برنامه ی کنسولی ایجاد کرده و از Nlog برای موارد ذکر شده ی زیر استفاده خواهیم کرد.

  •  جهت نمایش پیام های گزارش در یک برنامه ی کنسولی.
  •  گزارش گیری از پیام ها در یک فایل در مکانی مشخص.
  • همچنین، یک پیام گزارش گیری شده را ایمیل خواهیم کرد.

بیایید شروع کنیم.

مرحله ۱

یک C# Console Application ایجاد کرده و نام آن را NlogDemoApplication بگذارید.

NLog

مرحله ۲

پکیج Nlog را در Application نصب کنید. برای این کار می توانید از NuGet Package Manager استفاده کنید.

از فرمان زیر استفاده کنید.

Install-Package NLog.Config

NLog

دو فایل، همانطور که در زیر نشان داده شده، اضافه خواهد شد.

  1. Config
  2.  xsd

NLog

مرحله ۳

فایل Program.cs را باز کرده و یک Logger ایستای خصوصی (private static) برای هر کلاس ایجاد کنید.

همچنین نیاز است از LogManager برای ایجاد نمونه های Logger استفاده کنیم. افزودن فضای نام (namespace) را نیز فراموش نکنید.

private static Logger logger = LogManager.GetCurrentClassLogger();  

NLog

مرحله ۴

تابع اصلی (main) را با کد آورده شده در زیر جایگزین کنید. در این متد، تنها تابع خطای Nlog را برای گزارش گیری از یک پیام خطای ایستا، فراخوانی می کنیم.

static void Main(string[] args)  
            {  
                    logger.Error("This is an error message");  
                    Console.Read();  
            }  

مرحله ۵

حال، فایل Nlog.Config را باز کرده و کد زیر را نیز جایگزین کنید.


<targets>  
    <target name="console" xsi:type="Console" layout="${longdate}|${message}"/>  
</targets>  
  
<rules>  
    <logger name="*" minlevel="Error" writeTo="console" />  
</rules>  

در زیر تگ targets/اهداف، کلیدها را به عنوان targets اضافه می کنیم؛ یعنی جایی که نتایج را می خواهیم و در زیر تگ rules/قوانین، هنگامیکه گزارش خود را می نویسیم، کلید (rules) را اضافه می کنیم.

در این زمان، یک Console Application را هدف قرار داده و هرگاه خطایی رخ دهد، گزارشی خواهیم نوشت.

تذکر

  •  xsitype نوع هدف برای گزارش
  • Layout خروجی
  •  Name نام هدف

مرحله ۶

Console Application را اجرا کرده و خروجی نشان داده شده ی زیر را مشاهده خواهید کرد.

نحوه ی نمایش یک پیام گزارش در یک پنجره ی خروجی کنسول به این صورت است.

NLogمرحله ۷

اکنون، فایلی را برای گزارش گیری از یک پیام خطا، هدف قرار خواهیم داد.

مجدد، فایل Nlog.Config را باز کرده و خط کد پایین را در زیر تگ targets اضافه کنید.

<target name="file" xsitype="File" fileName="D\logs\NLog.log" layout="${longdate}|${message}"/>   

در rule/قانون موجود، فایل (نام هدف) را با کنسول اضافه کنید. حال، کد شما بصورت زیر خواهد بود.

<targets>  
    <target name="console" xsitype="Console" layout="${longdate}|${message}"/>  
     <target name="file" xsitype="File" fileName="D\logs\NLog.log" layout="${longdate}|${message}"/>  
</targets>  
  
  <rules>  
    <logger name="*" minlevel="Error" writeTo="console,file" />  
  </rules>  

مرحله ۸

کد را اجرا کنید. اکنون، خروجی را در دو محل خواهید دید، که یکی در پنجره ی کنسول و دومی در فایل target است.

مسیر مشخص شده در فایل هدف/target را بررسی کنید. تصویر نشان داده شده در زیر را برای ارجاع مشاهده کنید.

NLog

مرحله ۹

حال، ایمیلی را هدف قرار خواهیم داد. مجدد، هدفی دیگر (همانطور که در زیر نشان داده شده) در زیر تگ targets اضافه کنید.

NLog

ما از احراز هویت پایه استفاده میکنیم، بنابراین نیاز است smtpusername و password را ذکر کنیم.

<target name="sendMail" xsitype="Mail" subject="Application Error Log" to="XXXXXXXXXXXXXXXXXXXXXXXXXXX" from="XXXXXXXXXXXXXXXXXXXXXXXXX" body="${longdate}|${message}" enableSsl="true" smtpAuthentication="Basic" smtpServer="smtp.gmail.com" smtpUserName="XXXXXXXXXXXXXXXXXXXX" smtpPassword="XXXXXXXXXXXXXXXXXXXX" smtpPort="587"/>  
  </targets>   

نام target/هدف، که sendEmail است و rule/قانون موجود در زیر نشان داده شده است.


<logger name="*" minlevel="Error" writeTo="console,file,sendMail" />   
  

مرحله ۱۰

برنامه را اجرا کنید. خروجی را همانطور که در زیر نشان داده شده، می بینیم. می توانید نتیجه را در آدرس ایمیل مشخص شده ی خود، هنگامیکه این کد را امتحان می کنید، بررسی کنید.

NLog

بنابراین، اکنون می توانید پیام های گزارشی را در سه محل بررسی کنید.

  • کنسول
  • فایل
  • ایمیل

در این مثال، کار را ساده کردم تا مفهوم پایه برای همگی واضح باشد. تنها از یک پیام خطا استفاده کردم.

بطور مشابه، می توانید از یک پیام اطلاعاتی، خطای جدی/مهلک، پیمایش و … گزارش گیری کنید.

همچنین می توانید کارهای بسیار دیگری با Nlog انجام دهید، از آنجاییکه همه به خلاقیت و تلاش شما بستگی دارد،موارد بسیاری وجود دارد که می توانیم با استفاده از Nlog انجام دهیم. نحوه ی استفاده از آن را در این جا نشان داده ایم. امیدوارم از این مقاله خوشتان بیاید.

  • پسورد: www.mspsoft.com
زهره سلطانیان

نوشته‌های مرتبط

دیدگاه‌ها

*
*

این سایت از اکیسمت برای کاهش هرزنامه استفاده می کند. بیاموزید که چگونه اطلاعات دیدگاه های شما پردازش می‌شوند.