مسیرها
/
C#
C#
/
تمرین‌ها
/
تحلیل لاگ
تحلیل لاگ

تحلیل لاگ

تمرین یادگیری

مقدمه

متدهای الحاقی

متدهای الحاقی به شما امکان می‌دهند بدون ایجاد یک نوع مشتق‌شده‌ی جدید، کامپایل مجدد، یا تغییر نوع اصلی به شکل دیگری، به انواع موجود متد اضافه کنید. این متدها به‌صورت متدهای ایستا تعریف می‌شوند، اما فراخوانی آن‌ها با نحوه‌ی نگارش فراخوانی متد نمونه انجام می‌شود. پیش از پارامتر اول آن‌ها اصلاح‌کننده‌ی this می‌آید؛ این پارامتر مشخص می‌کند که متد روی کدام نوع عمل می‌کند. این متدها در سطح فضای نام در دسترس قرار می‌گیرند.

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

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

دستورالعمل‌ها

در این تمرین، خطوط لاگ را پردازش می‌کنید.

هر خط لاگ رشته‌ای است که به این شکل قالب‌بندی شده است: "[<LEVEL>]: <MESSAGE>".

سه سطح مختلف لاگ وجود دارد:

  • INFO
  • WARNING
  • ERROR

چند وظیفه دارید که هر کدام یک خط لاگ می‌گیرد و از شما می‌خواهد کاری با آن انجام دهید.

1. بازیابی رشته‌ی پس از یک زیررشته‌ی مشخص

با نگاهی به لاگ‌های ماه گذشته می‌بینید که پیام تست همیشه بعد از یک زیررشته‌ی مشخص قرار دارد. چون پیش‌بینی می‌کنید که در آینده‌ی نزدیک لازم شود پیام تست را استخراج کنید، تصمیم می‌گیرید یک متد کمکی بسازید که در این کار به شما کمک کند.

متد الحاقی LogAnalysis.SubstringAfter() (به‌صورت static) را پیاده‌سازی کنید که یک جداکننده‌ی رشته‌ای می‌گیرد و زیررشته‌ی بعد از جداکننده را برمی‌گرداند.

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

2. بازیابی رشته‌ی بین دو زیررشته

با بررسی بیشتر می‌بینید که سطح لاگ همیشه بین کروشه‌ها ([ و ]) قرار دارد. چون همچنین پیش‌بینی می‌کنید که در آینده‌ی نزدیک لازم شود سطح لاگ را استخراج کنید، تصمیم می‌گیرید متد کمکی دیگری بسازید که در این کار به شما کمک کند.

متد الحاقی LogAnalysis.SubstringBetween() (به‌صورت static) را پیاده‌سازی کنید که دو جداکننده‌ی رشته‌ای می‌گیرد و زیررشته‌ای را برمی‌گرداند که بین آن دو جداکننده قرار دارد.

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

3. تجزیه‌ی پیام یک لاگ

متد الحاقی LogAnalysis.Message() (به‌صورت static) را پیاده‌سازی کنید تا پیام موجود در یک لاگ را برگرداند.

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

4. تجزیه‌ی سطح لاگ در یک لاگ

متد الحاقی LogAnalysis.LogLevel() (به‌صورت static) را پیاده‌سازی کنید تا سطح لاگ یک لاگ را برگرداند.

var log = "[ERROR]: Missing ; on line 20.";
log.LogLevel(); // => returns "ERROR"
ویرایش از طریق GitHub این لینک در پنجره یا زبانه‌ی جدیدی باز می‌شود
C# Exercism

آماده‌اید تحلیل لاگ را شروع کنید؟

در Exercism ثبت‌نام کنید تا C# را همراه با 62 مفهوم178 تمرین و مربی‌گری انسانی واقعی یاد بگیرید و در آن استاد شوید، همه‌ی این‌ها رایگان.