ट्रैक
/
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 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।