ELMAH এবং NLog ব্যবহার করে লগিং করা

Microsoft Technologies - এএসপি ডট নেট এমভিসি (ASP.Net MVC) রিপোর্টিং এবং লগিং (Reporting and Logging) |
260
260

ASP.Net MVC অ্যাপ্লিকেশনগুলিতে ELMAH (Error Logging Modules and Handlers) এবং NLog দুটি শক্তিশালী টুল, যা Exception এবং Error Logging পরিচালনা করতে ব্যবহৃত হয়। ELMAH সাধারণত Exception লগ করে এবং একটি ওয়েব ভিত্তিক UI-এর মাধ্যমে লগ দেখা যায়। অন্যদিকে, NLog কনফিগারেশনের মাধ্যমে বিভিন্ন ডেস্টিনেশনে (ফাইল, ডাটাবেস, ইমেল ইত্যাদি) লগ পাঠাতে পারে।


ELMAH ব্যবহার করে লগিং

ELMAH ইন্সটল করা

  1. Visual Studio-তে NuGet Package Manager খুলুন।
  2. ELMAH প্যাকেজ ইনস্টল করুন:

    Install-Package elmah
    

ELMAH কনফিগারেশন

Web.config-এ ELMAH এর সেটিং যোগ করুন:

<configuration>
  <configSections>
    <sectionGroup name="elmah">
      <section name="errorLog" type="Elmah.ErrorLogSectionHandler, Elmah" />
    </sectionGroup>
  </configSections>
  
  <elmah>
    <errorLog type="Elmah.XmlFileErrorLog, Elmah" logPath="~/App_Data" />
  </elmah>
  
  <system.web>
    <httpModules>
      <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" />
      <add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" />
    </httpModules>
  </system.web>
</configuration>

ELMAH এ অ্যাক্সেস

ডিফল্টভাবে ELMAH লগ UI দেখতে এই URL ব্যবহার করুন:

http://localhost/elmah.axd

ELMAH এর সুবিধা

  • সমস্ত Exception স্বয়ংক্রিয়ভাবে লগ হয়।
  • লগ ওয়েব ইন্টারফেসের মাধ্যমে দেখা যায়।
  • Exception লগ ফাইল বা ডাটাবেসে সংরক্ষণ করা যায়।

NLog ব্যবহার করে লগিং

NLog ইন্সটল করা

  1. Visual Studio-তে NuGet Package Manager খুলুন।
  2. NLog.Web.AspNetCore প্যাকেজ ইনস্টল করুন:

    Install-Package NLog.Web.AspNetCore
    

NLog কনফিগারেশন

NLog.config ফাইল তৈরি করুন এবং এতে নিচের কনফিগারেশন যোগ করুন:

<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

  <targets>
    <target name="logfile" xsi:type="File" fileName="Logs/logfile.log" layout="${longdate} ${level} ${message} ${exception}" />
    <target name="logconsole" xsi:type="Console" />
  </targets>

  <rules>
    <logger name="*" minlevel="Info" writeTo="logfile" />
    <logger name="*" minlevel="Error" writeTo="logconsole" />
  </rules>
</nlog>

NLog ইন্টিগ্রেশন

Program.cs-এ NLog কনফিগার করুন:

using NLog.Web;

var logger = NLogBuilder.ConfigureNLog("NLog.config").GetCurrentClassLogger();
try
{
    var builder = WebApplication.CreateBuilder(args);

    // Add services to the container.
    builder.Services.AddControllersWithViews();

    // Configure NLog
    builder.Logging.ClearProviders();
    builder.Logging.SetMinimumLevel(Microsoft.Extensions.Logging.LogLevel.Trace);
    builder.Host.UseNLog();

    var app = builder.Build();

    // Configure the HTTP request pipeline.
    if (!app.Environment.IsDevelopment())
    {
        app.UseExceptionHandler("/Home/Error");
        app.UseHsts();
    }

    app.UseHttpsRedirection();
    app.UseStaticFiles();

    app.UseRouting();

    app.UseAuthorization();

    app.MapControllerRoute(
        name: "default",
        pattern: "{controller=Home}/{action=Index}/{id?}");

    app.Run();
}
catch (Exception ex)
{
    logger.Error(ex, "Application stopped because of an exception.");
    throw;
}
finally
{
    NLog.LogManager.Shutdown();
}

NLog ব্যবহার

কোনো নির্দিষ্ট ক্লাস বা কন্ট্রোলারে লগিং করতে:

using NLog;

public class HomeController : Controller
{
    private static readonly ILogger logger = LogManager.GetCurrentClassLogger();

    public IActionResult Index()
    {
        logger.Info("Index page loaded.");
        try
        {
            throw new Exception("Test exception");
        }
        catch (Exception ex)
        {
            logger.Error(ex, "An error occurred in the Index action.");
        }
        return View();
    }
}

ELMAH এবং NLog এর তুলনা

বৈশিষ্ট্যELMAHNLog
ব্যবহারিক ক্ষেত্রException লগ এবং UI ভিত্তিকCustom লগিং এবং ডেস্টিনেশন নির্ধারণ
লগ স্টোরেজফাইল, ডাটাবেসফাইল, ডাটাবেস, ইমেল, ক্লাউড
কনফিগারেশন সহজতাসহজকিছুটা জটিল
UI সাপোর্টহ্যাঁনা
প্রধান ফোকাসException ManagementGeneral Logging

সারমর্ম

ELMAH এবং NLog উভয়ই শক্তিশালী লগিং টুল। ELMAH Exception লগ এবং UI-এর জন্য আদর্শ, যেখানে NLog কাস্টমাইজড লগিং এবং মাল্টিপল আউটপুট ডেস্টিনেশনের জন্য ব্যবহৃত হয়। বড় অ্যাপ্লিকেশনে উভয় টুল একসাথে ব্যবহার করে Exception এবং Custom লগিং ব্যবস্থাপনা আরও কার্যকর করা যায়।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion