Kurzusok
/
C#
C#
/
Feladatok
/
Logok, logok, logok!
Logok, logok, logok!

Logok, logok, logok!

Tanulófeladat

Bevezetés

Felsorolások

A C# enum típusa névvel ellátott állandók rögzített halmazát jelöli (ez a felsorolás). Legfőbb célja, hogy típusbiztos módot adjon a numerikus állandókkal való munkához, és hogy a lehetséges értékeket egy előre meghatározott halmazra korlátozza. Egy egyszerű felsorolás így definiálható:

enum Season
{
    Spring,
    Summer,
    Autumn,
    Winter
}

Ha nem adod meg őket kifejezetten, a felsorolás tagjai automatikusan növekvő egész értékeket kapnak, az első érték pedig a nulla lesz. Az értékeket kifejezetten is megadhatod:

enum Answer
{
    Maybe = 1,
    Yes = 3,
    No = 5
}

Utasítások

Ebben a feladatban naplósorokkal fogsz dolgozni.

Minden naplósor egy string, amelynek formátuma a következő: "[<LVL>]: <MESSAGE>".

A különböző naplószintek a következők:

  • TRC (trace)
  • DBG (debug)
  • INF (info)
  • WRN (warning)
  • ERR (error)
  • FTL (fatal)

Három részfeladatod van.

1. Naplószint értelmezése

Definiálj egy LogLevel enumot, amelynek hat eleme van, a fenti naplószinteknek megfelelően.

  • Trace
  • Debug
  • Info
  • Warning
  • Error
  • Fatal

Ezután valósítsd meg a (statikus) LogLine.ParseLogLevel() metódust, amely értelmezi egy naplósor naplószintjét:

LogLine.ParseLogLevel("[INF]: File deleted")
// => LogLevel.Info

2. Ismeretlen naplószint kezelése

Sajnos időnként előfordul, hogy egyes naplósorok naplószintje ismeretlen. Hogy ezeket a naplósorokat szépen kezelni tudd, adj hozzá egy Unknown elemet a LogLevel enumhoz, amelyet ismeretlen naplószint értelmezésekor kell visszaadni:

LogLine.ParseLogLevel("[XYZ]: Overly specific, out of context message")
// => LogLevel.Unknown

3. Naplósor átalakítása rövid formátumra

A naplósorok naplószintje meglehetősen hosszú. Hogy csökkentsük a naplósorok tárolásához szükséges lemezterületet, kifejlesztettek egy rövid formátumot: "[<ENCODED_LEVEL>]:<MESSAGE>".

A kódolt naplószint egyszerű megfeleltetés: minden naplószinthez egy szám tartozik:

  • Unknown - 0
  • Trace - 1
  • Debug - 2
  • Info - 4
  • Warning - 5
  • Error - 6
  • Fatal - 42

Valósítsd meg a (statikus) LogLine.OutputForShortLog() metódust, amely ki tudja írni a lerövidített naplósor-formátumot:

LogLine.OutputForShortLog(LogLevel.Error, "Stack overflow")
// => "6:Stack overflow"
Szerkesztés GitHubon A hivatkozás új ablakban vagy lapon nyílik meg
C# Exercism

Készen állsz elkezdeni a(z) Logok, logok, logok! feladatot?

Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) C# nyelvet 62 fogalom178 feladat segítségével, valódi emberi mentorálással, mindez ingyen.