Διαδρομές
/
C#
C#
/
Ασκήσεις
/
Καταγραφές, καταγραφές, καταγραφές!
Καταγραφές, καταγραφές, καταγραφές!

Καταγραφές, καταγραφές, καταγραφές!

Άσκηση εκμάθησης

Εισαγωγή

Απαριθμήσεις

Ο τύπος enum στη C# αντιπροσωπεύει ένα σταθερό σύνολο από ονομασμένες σταθερές (μια απαρίθμηση). Ο κύριος σκοπός του είναι να παρέχει έναν τρόπο ασφαλή ως προς τον τύπο για να αλληλεπιδράς με αριθμητικές σταθερές, περιορίζοντας τις διαθέσιμες τιμές σε ένα προκαθορισμένο σύνολο. Μπορούμε να ορίσουμε ένα απλό enum ως εξής:

enum Season
{
    Spring,
    Summer,
    Autumn,
    Winter
}

Αν δεν οριστούν ρητά, τα μέλη του enum θα λάβουν αυτόματα αυξανόμενες ακέραιες τιμές, με την πρώτη τιμή να είναι μηδέν. Μπορούμε επίσης να ορίσουμε τιμές ρητά:

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

Οδηγίες

Σε αυτή την άσκηση θα επεξεργάζεσαι γραμμές καταγραφής.

Κάθε γραμμή καταγραφής είναι μια συμβολοσειρά με την εξής μορφή: "[<LVL>]: <MESSAGE>".

Αυτά είναι τα διάφορα επίπεδα καταγραφής:

  • TRC (ίχνος)
  • DBG (debug)
  • INF (πληροφορία)
  • WRN (προειδοποίηση)
  • ERR (σφάλμα)
  • FTL (θανατηφόρο)

Έχεις τρεις εργασίες.

1. Ανάλυση επιπέδου καταγραφής

Όρισε ένα enum LogLevel που έχει έξι στοιχεία, τα οποία αντιστοιχούν στα παραπάνω επίπεδα καταγραφής.

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

Έπειτα, υλοποίησε τη (static) μέθοδο LogLine.ParseLogLevel() για να αναλύεις το επίπεδο καταγραφής μιας γραμμής καταγραφής:

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

2. Υποστήριξη άγνωστου επιπέδου καταγραφής

Δυστυχώς, κάποιες φορές μερικές γραμμές καταγραφής έχουν άγνωστο επίπεδο καταγραφής. Για να χειριστείς ομαλά αυτές τις γραμμές καταγραφής, πρόσθεσε ένα στοιχείο Unknown στο enum LogLevel, το οποίο θα πρέπει να επιστρέφεται όταν αναλύεται ένα άγνωστο επίπεδο καταγραφής:

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

3. Μετατροπή γραμμής καταγραφής σε σύντομη μορφή

Το επίπεδο καταγραφής μιας γραμμής καταγραφής είναι αρκετά αναλυτικό. Για να μειωθεί ο χώρος στον δίσκο που χρειάζεται για την αποθήκευση των γραμμών καταγραφής, αναπτύχθηκε μια σύντομη μορφή: "[<ENCODED_LEVEL>]:<MESSAGE>".

Το κωδικοποιημένο επίπεδο καταγραφής είναι μια απλή αντιστοίχιση ενός επιπέδου καταγραφής σε έναν αριθμό:

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

Υλοποίησε τη (static) μέθοδο LogLine.OutputForShortLog() που μπορεί να παράγει τη συντομευμένη μορφή γραμμής καταγραφής:

LogLine.OutputForShortLog(LogLevel.Error, "Stack overflow")
// => "6:Stack overflow"
Επεξεργασία μέσω GitHub Ο σύνδεσμος ανοίγει σε νέο παράθυρο ή καρτέλα
C# Exercism

Έτοιμος να ξεκινήσεις την άσκηση Καταγραφές, καταγραφές, καταγραφές!;

Γράψου στο Exercism για να μάθεις και να κατακτήσεις C# με 62 έννοιες178 ασκήσεις και πραγματική καθοδήγηση από ανθρώπους, όλα δωρεάν.