Built-in এবং Third-party Logging Frameworks

Microsoft Technologies - এএসপি ডট নেট কোর (ASP.Net Core) Logging এবং Monitoring |
206
206

ASP.NET Core অ্যাপ্লিকেশন ডেভেলপমেন্টে লগিং একটি গুরুত্বপূর্ণ অংশ, কারণ এটি অ্যাপ্লিকেশনের কার্যকারিতা মনিটর করতে এবং সমস্যা ডিবাগ করতে সাহায্য করে। ASP.NET Core তার মধ্যে বিল্ট-ইন লগিং ফিচার সরবরাহ করে, তবে আরও উন্নত ফিচারের জন্য থার্ড-পার্টি লগিং ফ্রেমওয়ার্কও ব্যবহার করা যায়। এই নিবন্ধে, আমরা ASP.NET Core এর বিল্ট-ইন লগিং এবং থার্ড-পার্টি লগিং ফ্রেমওয়ার্ক নিয়ে আলোচনা করব।


Built-in Logging Framework in ASP.NET Core

ASP.NET Core একটি বিল্ট-ইন লগিং ফ্রেমওয়ার্ক সরবরাহ করে যা সাধারণ লগিং কার্যক্রম, যেমন ইনফরমেশন লগিং, ডিবাগ লগিং, এবং এরর লগিং পরিচালনা করতে সক্ষম। এটি খুবই কার্যকর এবং সহজে কনফিগার করা যায়।

বিল্ট-ইন লগিং ফিচার

ASP.NET Core এর বিল্ট-ইন লগিং ফিচারটি ILogger ইন্টারফেস ব্যবহার করে কাজ করে। আপনি অ্যাপ্লিকেশনের বিভিন্ন অংশে ILogger ব্যবহার করে লগ তৈরি করতে পারেন এবং সেই লগগুলো একটি কনসোল, ফাইল, বা ডেটাবেসে স্টোর করতে পারেন।

বিল্ট-ইন লগিং কনফিগারেশন

ASP.NET Core অ্যাপ্লিকেশনে লগিং কনফিগার করতে, Startup.cs ফাইলে লগিং সেটিংস কনফিগার করা হয়। অ্যাপ্লিকেশনের ডিফল্ট লগিং সিস্টেম Serilog বা NLog নয়, বরং Microsoft.Extensions.Logging লাইব্রেরি ব্যবহার করে।

উদাহরণ: বিল্ট-ইন লগিং ব্যবহারের জন্য কনফিগারেশন

Startup.cs ফাইলে লগিং কনফিগার করা:

public class Startup
{
    public void ConfigureServices(IServiceCollection services)
    {
        services.AddLogging(config =>
        {
            config.AddConsole();  // কনসোল লগিং সক্রিয় করা
            config.AddDebug();    // ডিবাগ লগিং সক্রিয় করা
            config.AddEventSourceLogger(); // ইভেন্ট লগিং সক্রিয় করা
        });
    }

    public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILogger<Startup> logger)
    {
        logger.LogInformation("Application Started");

        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }

        app.UseRouting();
    }
}

এখানে, ILogger<Startup> এর মাধ্যমে লগিং করা হয়েছে। আপনি বিভিন্ন স্তরের লগ (ইনফরমেশন, ওয়্যার্নিং, এরর) ব্যবহার করতে পারেন, যেমন:

  • logger.LogInformation("This is an info log");
  • logger.LogWarning("This is a warning log");
  • logger.LogError("This is an error log");

বিল্ট-ইন লগিং এর সুবিধা

  • সিম্পল কনফিগারেশন: খুব সহজে কনফিগার করা যায়।
  • প্রোফেশনাল ফিচার: অ্যাপ্লিকেশন ডেভেলপমেন্টের জন্য প্রয়োজনীয় প্রায় সকল লগিং ফিচার যেমন, কনসোল, ফাইল, ডেটাবেস ইত্যাদি সমর্থন করে।
  • ফ্লেক্সিবিলিটি: বিভিন্ন ধরনের আউটপুট (যেমন JSON, টেক্সট, ইত্যাদি) সমর্থন করে।

Third-party Logging Frameworks

ASP.NET Core এর বিল্ট-ইন লগিং সিস্টেম বেশ কার্যকর হলেও, অনেক ডেভেলপার অতিরিক্ত ফিচারের জন্য থার্ড-পার্টি লগিং ফ্রেমওয়ার্ক ব্যবহার করতে পছন্দ করে। এদের মধ্যে সবচেয়ে জনপ্রিয় হলো Serilog, NLog, এবং log4net

1. Serilog

Serilog একটি আধুনিক এবং অত্যন্ত কনফিগারেবল লগিং ফ্রেমওয়ার্ক। এটি সিঙ্ক্রোনাস এবং অ্যাসিঙ্ক্রোনাস লগিং সাপোর্ট করে এবং ডেটাবেস, ফাইল, এবং ক্লাউড সার্ভিসে লগ ডাটা পাঠানোর জন্য একটি দুর্দান্ত সমাধান।

Serilog এর ব্যবহার:

  1. NuGet প্যাকেজ ইনস্টল:

    dotnet add package Serilog.AspNetCore
    dotnet add package Serilog.Sinks.Console
    dotnet add package Serilog.Sinks.File
    
  2. Serilog কনফিগারেশন: Program.cs ফাইলে Serilog কনফিগার করুন:

    public class Program
    {
        public static void Main(string[] args)
        {
            Log.Logger = new LoggerConfiguration()
                .WriteTo.Console()
                .WriteTo.File("logs/myapp.txt", rollingInterval: RollingInterval.Day)
                .CreateLogger();
    
            CreateHostBuilder(args).Build().Run();
        }
    
        public static IHostBuilder CreateHostBuilder(string[] args) =>
            Host.CreateDefaultBuilder(args)
                .ConfigureWebHostDefaults(webBuilder =>
                {
                    webBuilder.UseStartup<Startup>();
                })
                .UseSerilog();  // Serilog ব্যবহার
    }
    

Serilog এর মাধ্যমে আপনি সহজেই JSON ফরম্যাটে লগ করতে পারবেন এবং সেই লগগুলো বিভিন্ন সিস্টেমে পাঠাতে পারবেন যেমন Datadog, Elasticsearch, ইত্যাদি।

2. NLog

NLog একটি অত্যন্ত জনপ্রিয় এবং শক্তিশালী লগিং ফ্রেমওয়ার্ক যা ফাইল, ডেটাবেস, কনসোল, ইত্যাদি আউটপুট সমর্থন করে। NLog সাধারণত বৃহৎ অ্যাপ্লিকেশন ডেভেলপমেন্টের জন্য ব্যবহৃত হয়।

NLog এর ব্যবহার:

  1. NuGet প্যাকেজ ইনস্টল:

    dotnet add package NLog.Web.AspNetCore
    dotnet add package NLog.Config
    
  2. NLog কনফিগারেশন: Program.cs ফাইলে NLog কনফিগার করুন:

    public class Program
    {
        public static void Main(string[] args)
        {
            var logger = NLog.Web.NLogBuilder.ConfigureNLog("nlog.config").GetCurrentClassLogger();
            try
            {
                logger.Info("Application is starting");
                CreateHostBuilder(args).Build().Run();
            }
            catch (Exception ex)
            {
                logger.Error(ex, "Stopped program because of an exception");
                throw;
            }
        }
    
        public static IHostBuilder CreateHostBuilder(string[] args) =>
            Host.CreateDefaultBuilder(args)
                .ConfigureWebHostDefaults(webBuilder =>
                {
                    webBuilder.UseStartup<Startup>();
                })
                .ConfigureLogging((context, logging) =>
                {
                    logging.ClearProviders();
                    logging.AddNLog();
                });
    }
    

NLog এর মাধ্যমে লগগুলোকে অনেক বেশি কাস্টমাইজ করা যায় এবং বিশেষত বৃহৎ অ্যাপ্লিকেশনগুলোতে এটি খুবই কার্যকরী।

3. log4net

log4net একটি জনপ্রিয় লগিং ফ্রেমওয়ার্ক যা দীর্ঘ সময় ধরে ব্যবহৃত হয়ে আসছে। এটি সহজে কনফিগারেবল এবং অনেক আউটপুট সাপোর্ট করে, যেমন ফাইল, ডেটাবেস, ইমেইল, ইত্যাদি।

log4net এর ব্যবহার:

  1. NuGet প্যাকেজ ইনস্টল:

    dotnet add package log4net
    
  2. log4net কনফিগারেশন: log4net.config ফাইল তৈরি করুন এবং লগ ফরম্যাট এবং আউটপুট কনফিগার করুন।

    <log4net>
      <appender name="FileAppender" type="log4net.Appender.FileAppender">
        <file value="Logs/app.log"/>
        <appendToFile value="true"/>
        <layout type="log4net.Layout.PatternLayout">
          <conversionPattern value="%date [%thread] %-5level %logger - %message%newline"/>
        </layout>
      </appender>
      <root>
        <level value="INFO"/>
        <appender-ref ref="FileAppender"/>
      </root>
    </log4net>
    
  3. log4net কনফিগারেশন কোড: Program.cs ফাইলে লগ4নেট ব্যবহার করে লগ কনফিগার করুন।

    log4net.Config.XmlConfigurator.Configure(new FileInfo("log4net.config"));
    

উপসংহার

ASP.NET Core-এ বিল্ট-ইন লগিং ফিচার বেশ কার্যকরী এবং সহজে কনফিগার করা যায়, তবে কিছু উন্নত লগিং ফিচারের জন্য আপনি থার্ড-পার্টি ফ্রেমওয়ার্ক ব্যবহার করতে পারেন। Serilog, NLog, এবং log4net থার্ড-পার্টি ফ্রেমওয়ার্কগুলো বিভিন্ন ধরনের আউটপুট সাপোর্ট করে এবং ডেভেলপারদের

আরও কাস্টমাইজড লগিং সুবিধা প্রদান করে। আপনার অ্যাপ্লিকেশনের চাহিদা অনুসারে আপনি এগুলোর মধ্যে একটি নির্বাচন করতে পারেন।

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

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

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

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