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

سطح‌های لاگ

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

مقدمه

رشته

یک string در C# شیءای است که متن تغییرناپذیر را به‌صورت دنباله‌ای از نویسه‌های یونیکد (حروف، ارقام، نشانه‌های نگارشی و غیره) نمایش می‌دهد. برای تعریف یک نمونه از string از علامت نقل‌قول دوگانه استفاده می‌شود:

string fruit = "Apple";

متدها

رشته‌ها با فراخوانی متدهای داخلی رشته دستکاری می‌شوند. برای مثال، برای حذف فاصله‌های خالی از یک رشته، می‌توانید مانند این از متد Trim استفاده کنید:

string name = " Jane "
name.Trim()
// => "Jane"

وقتی رشته‌ای ساخته شد، مقدار آن هرگز تغییر نمی‌کند. هر متدی که به نظر برسد رشته را تغییر می‌دهد، در واقع رشته‌ی جدیدی برمی‌گرداند.

الحاق

چندین رشته را می‌توان به هم الحاق (اضافه) کرد. ساده‌ترین راه برای این کار استفاده از عملگر + است.

string name = "Jane";
"Hello " + name + "!";
// => "Hello Jane!"

قالب‌بندی

برای هر قالب‌بندی رشته که پیچیده‌تر از الحاق ساده باشد، درج در رشته ترجیح داده می‌شود. برای استفاده از درج در رشته، یک علامت دلار ($) به ابتدای رشته اضافه کنید. سپس می‌توانید با آکولاد ({}) به هر متغیری درون رشته دسترسی داشته باشید.

string name = "Jane";
$"Hello {name}!";
// => "Hello Jane!"

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

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

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

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

  • INFO
  • WARNING
  • ERROR

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

1. دریافت پیام از یک خط لاگ

متد (static) LogLine.Message() را طوری پیاده‌سازی کنید که پیام یک خط لاگ را برگرداند:

LogLine.Message("[ERROR]: Invalid operation")
// => "Invalid operation"

هر فضای خالی ابتدایی یا انتهایی باید حذف شود:

LogLine.Message("[WARNING]:  Disk almost full\r\n")
// => "Disk almost full"

2. دریافت سطح لاگ از یک خط لاگ

متد (static) LogLine.LogLevel() را طوری پیاده‌سازی کنید که سطح لاگ یک خط لاگ را برگرداند؛ این مقدار باید با حروف کوچک برگردانده شود:

LogLine.LogLevel("[ERROR]: Invalid operation")
// => "error"

3. بازقالب‌بندی یک خط لاگ

متد (static) LogLine.Reformat() را پیاده‌سازی کنید که خط لاگ را بازقالب‌بندی می‌کند، به این صورت که پیام را اول قرار می‌دهد و سطح لاگ را بعد از آن در پرانتز می‌آورد:

LogLine.Reformat("[INFO]: Operation completed")
// => "Operation completed (info)"
ویرایش از طریق GitHub این لینک در پنجره یا زبانه‌ی جدیدی باز می‌شود
C# Exercism

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

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