ট্র্যাক
/
C#
C#
/
অনুশীলনী
/
লগ বিশ্লেষণ
লগ বিশ্লেষণ

লগ বিশ্লেষণ

লার্নিং অনুশীলনী

ভূমিকা

এক্সটেনশন মেথড

এক্সটেনশন মেথড বিদ্যমান টাইপগুলোতে নতুন কোনো ডিরাইভড টাইপ তৈরি না করে, রিকম্পাইল না করে, বা মূল টাইপটি অন্যভাবে পরিবর্তন না করেই মেথড যোগ করার সুযোগ দেয়। এগুলো স্ট্যাটিক মেথড হিসেবে ডিফাইন করা হয়, কিন্তু ইনস্ট্যান্স মেথড সিনট্যাক্স ব্যবহার করে কল করা হয়। এদের প্রথম প্যারামিটারের আগে this মডিফায়ার থাকে এবং সেই প্যারামিটারই বলে দেয় মেথডটি কোন টাইপের উপর কাজ করে। এগুলো নেমস্পেস লেভেলে স্কোপে আনা হয়।

public static int WordCount(this string str)
{
    return str.Split().Length;
}

"Hello World".WordCount();
// => 2

নির্দেশনা

এই অনুশীলনীতে আপনি লগ-লাইন প্রসেস করবেন।

প্রতিটি লগ লাইন একটি স্ট্রিং, যার ফরম্যাট নিম্নরূপ: "[<LEVEL>]: <MESSAGE>".

এখানে তিনটি ভিন্ন লগ লেভেল আছে:

  • INFO
  • WARNING
  • ERROR

আপনার কয়েকটি কাজ আছে, যার প্রত্যেকটি একটি লগ লাইন নেবে এবং সেটি নিয়ে আপনাকে কিছু করতে বলবে।

1. নির্দিষ্ট সাবস্ট্রিংয়ের পরে থাকা স্ট্রিং বের করা

গত মাসের লগগুলো দেখে আপনি বুঝতে পারেন যে টেস্ট মেসেজটি সর্বদা একটি নির্দিষ্ট সাবস্ট্রিংয়ের পরে অবস্থান করে। আপনি আশা করছেন যে খুব শীঘ্রই আপনাকে টেস্ট মেসেজটি বের করতে হবে, তাই সেটির জন্য একটি হেল্পার মেথড তৈরি করার সিদ্ধান্ত নেন।

(static) LogAnalysis.SubstringAfter() এক্সটেনশন মেথডটি ইমপ্লিমেন্ট করুন, যা একটি স্ট্রিং ডেলিমিটার নেয় এবং ডেলিমিটারের পরে থাকা সাবস্ট্রিং রিটার্ন করে।

var log = "[INFO]: File Deleted.";
log.SubstringAfter(": "); // => returns "File Deleted."

2. দুটি সাবস্ট্রিংয়ের মাঝখানে থাকা স্ট্রিং বের করা

আরও খেয়াল করলে আপনি দেখবেন যে লগ লেভেলটি সর্বদা তৃতীয় বন্ধনীর ([ এবং ]) মধ্যে অবস্থান করে। আপনি এটাও আশা করছেন যে খুব শীঘ্রই আপনাকে লগ লেভেলটি বের করতে হবে, তাই সেটির জন্যও আরেকটি হেল্পার মেথড তৈরি করার সিদ্ধান্ত নেন।

(static) LogAnalysis.SubstringBetween() এক্সটেনশন মেথডটি ইমপ্লিমেন্ট করুন, যা দুটি স্ট্রিং ডেলিমিটার নেয় এবং দুটি ডেলিমিটারের মাঝখানে থাকা সাবস্ট্রিং রিটার্ন করে।

var log = "[INFO]: File Deleted.";
log.SubstringBetween("[", "]"); // => returns "INFO"

3. একটি লগে মেসেজ পার্স করা

একটি লগে থাকা মেসেজ রিটার্ন করার জন্য (static) LogAnalysis.Message() এক্সটেনশন মেথডটি ইমপ্লিমেন্ট করুন।

var log = "[ERROR]: Missing ; on line 20.";
log.Message(); // => returns "Missing ; on line 20."

4. একটি লগে লগ লেভেল পার্স করা

একটি লগের লগ লেভেল রিটার্ন করার জন্য (static) LogAnalysis.LogLevel() এক্সটেনশন মেথডটি ইমপ্লিমেন্ট করুন।

var log = "[ERROR]: Missing ; on line 20.";
log.LogLevel(); // => returns "ERROR"
GitHub-এর মাধ্যমে সম্পাদনা করুন লিংকটি একটি নতুন উইন্ডো বা ট্যাবে খোলে
C# Exercism

লগ বিশ্লেষণ শুরু করতে প্রস্তুত?

Exercism-এ সাইন আপ করুন, C# ট্র্যাকের 62টি কনসেপ্ট178টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।