Logging হলো অ্যাপ্লিকেশনের মধ্যে তথ্য, ত্রুটি, এবং অন্যান্য লগ তৈরি এবং সংগ্রহ করার একটি প্রক্রিয়া। ASP.NET Core এর মধ্যে Logging ব্যবস্থাপনা বিল্ট-ইন রয়েছে, যা অ্যাপ্লিকেশন ডেভেলপারদের সহজে লগ ডেটা সংগ্রহ করতে এবং বিশ্লেষণ করতে সহায়ক। ASP.NET Core-এ লগিংয়ের জন্য কিছু গুরুত্বপূর্ণ কম্পোনেন্ট রয়েছে, যেমন ILogger, LogLevel, এবং Logging Providers।
ASP.NET Core-এর লগিং ব্যবস্থাপনা মূলত ILogger ইন্টারফেসের মাধ্যমে কাজ করে। ILogger বিভিন্ন স্তরের লগ তৈরি করতে এবং লগ তথ্য ফিল্টার করতে সহায়ক। এটি ডেটা রেকর্ড করার জন্য একটি এপিআই সরবরাহ করে যা ডেভেলপারদের বিভিন্ন ধরনের লগিং ইনফরমেশন যেমন ইনফরমেশন, ত্রুটি, ওয়ার্নিং ইত্যাদি তৈরি করতে সহায়তা করে।
public class HomeController : Controller
{
private readonly ILogger<HomeController> _logger;
public HomeController(ILogger<HomeController> logger)
{
_logger = logger;
}
public IActionResult Index()
{
_logger.LogInformation("Index action called at {Time}", DateTime.Now);
return View();
}
}
এখানে, ILogger ব্যবহার করে Index
অ্যাকশনে লগ করা হয়েছে, যা তথ্য (Information) স্তরের লগ তৈরি করবে।
ASP.NET Core-এ লগিং স্তরগুলি বিভিন্ন ধরনের লগ তৈরি করতে সহায়ক, যা লগিং-এ তথ্যের গুরুত্ব এবং স্তর নির্ধারণ করে। এগুলো হল:
আপনি যখন লগ তৈরি করবেন, তখন আপনি লগ স্তরের নির্বাচন করতে পারেন:
_logger.LogError("An error occurred while processing your request.");
_logger.LogWarning("This is a warning message.");
ASP.NET Core বিভিন্ন Logging Providers সরবরাহ করে, যা আপনাকে লগ ডেটা এক বা একাধিক জায়গায় সংরক্ষণ করতে সহায়তা করে। কিছু সাধারণ লগিং প্রোভাইডার হল:
এগুলো কনফিগারেশন ফাইলে বা Startup.cs-এ কনফিগার করা হয়।
ASP.NET Core-এ লগিং কনফিগারেশন করার জন্য Program.cs বা Startup.cs ফাইলে লগ প্রোভাইডার ও লগ স্তর নির্ধারণ করা হয়। নিচে একটি সাধারণ কনফিগারেশন দেখানো হলো:
public class Program
{
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureLogging((context, logging) =>
{
logging.ClearProviders(); // ডিফল্ট প্রোভাইডার মুছে ফেলা
logging.AddConsole(); // কনসোল লগ প্রোভাইডার যোগ করা
logging.AddDebug(); // ডিবাগ প্রোভাইডার যোগ করা
logging.SetMinimumLevel(LogLevel.Information); // লগ স্তর নির্ধারণ
})
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
});
}
এখানে, AddConsole এবং AddDebug প্রোভাইডার যোগ করা হয়েছে এবং লগ স্তর হিসেবে Information নির্ধারণ করা হয়েছে, যার মানে হলো Information, Warning, Error, এবং Critical স্তরের লগ সংরক্ষণ হবে, কিন্তু Trace বা Debug স্তরের লগ সংরক্ষণ হবে না।
আপনি প্রতিটি প্রোভাইডারের জন্য আলাদা লগ স্তর ফিল্টার করতে পারেন। উদাহরণস্বরূপ, যদি আপনি কেবলমাত্র Error
এবং তার উপরের লগ কনসোলে দেখতে চান তবে আপনি এইরকম কনফিগার করতে পারেন:
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureLogging((context, logging) =>
{
logging.ClearProviders();
logging.AddConsole(options =>
{
options.LogToStandardErrorThreshold = LogLevel.Error;
});
logging.SetMinimumLevel(LogLevel.Information);
})
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
});
ASP.NET Core এ Serilog ব্যবহার করে ফাইল লগিং কনফিগার করা খুবই জনপ্রিয়। প্রথমে Serilog এবং Serilog.Sinks.File প্যাকেজ ইনস্টল করতে হবে।
dotnet add package Serilog
dotnet add package Serilog.Sinks.File
এবং তারপর Program.cs ফাইলে Serilog কনফিগার করতে হবে:
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureLogging((context, logging) =>
{
logging.ClearProviders();
Log.Logger = new LoggerConfiguration()
.WriteTo.Console()
.WriteTo.File("app.log", rollingInterval: RollingInterval.Day)
.CreateLogger();
logging.AddSerilog();
})
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
});
এখানে Serilog কনফিগার করা হয়েছে যাতে লগ ডেটা app.log ফাইলে এবং কনসোলে লেখা হবে।
ASP.NET Core-এর Logging ব্যবস্থাপনা আপনাকে অ্যাপ্লিকেশন থেকে লগ তথ্য সংগ্রহ করতে এবং তা বিশ্লেষণ করতে সহায়তা করে। লগ স্তরগুলি এবং বিভিন্ন প্রোভাইডার ব্যবহার করে আপনি লগিংকে কাস্টমাইজ করতে পারেন, যা ডেভেলপমেন্ট, ডিবাগিং এবং প্রোডাকশন পরিবেশে অত্যন্ত কার্যকর। ILogger
ইন্টারফেস, লগ স্তর (LogLevel), এবং বিভিন্ন লগ প্রোভাইডার (Console, Debug, File, etc.) এর মাধ্যমে আপনি অ্যাপ্লিকেশন পর্যবেক্ষণ করতে পারেন।
common.read_more