Tracks
/
C#
C#
/
Übungen
/
Loganalyse
Loganalyse

Loganalyse

Lernübung

Einführung

Erweiterungsmethoden

Mit Erweiterungsmethoden kannst du vorhandenen Typen Methoden hinzufügen, ohne einen neuen abgeleiteten Typ zu erstellen, neu zu kompilieren oder den ursprünglichen Typ anderweitig zu verändern. Sie werden als statische Methoden definiert, aber mit der Syntax von Instanzmethoden aufgerufen. Ihr erster Parameter wird vom this-Modifizierer eingeleitet und gibt an, auf welchem Typ die Methode arbeitet; in den Gültigkeitsbereich kommen sie auf Namespace-Ebene.

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

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

Anleitung

In dieser Übung verarbeitest du Log-Zeilen.

Jede Log-Zeile ist ein String mit folgendem Format: "[<LEVEL>]: <MESSAGE>".

Es gibt drei verschiedene Log-Level:

  • INFO
  • WARNING
  • ERROR

Du hast mehrere Aufgaben. Bei jeder bekommst du eine Log-Zeile und sollst etwas mit ihr machen.

1. Den String nach einem bestimmten Teilstring abrufen

Wenn du dir die Logs des letzten Monats anschaust, siehst du, dass die Testnachricht immer nach einem bestimmten Teilstring steht. Da du damit rechnest, die Testnachricht in naher Zukunft extrahieren zu müssen, entscheidest du dich, eine Hilfsmethode zu erstellen, die dir dabei hilft.

Implementiere die (static) Erweiterungsmethode LogAnalysis.SubstringAfter(), die ein String-Trennzeichen entgegennimmt und den Teilstring nach dem Trennzeichen zurückgibt.

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

2. Den String zwischen zwei Teilstrings abrufen

Bei genauerem Hinsehen siehst du, dass der Log-Level immer zwischen eckigen Klammern ([ und ]) steht. Da du auch damit rechnest, den Log-Level in naher Zukunft extrahieren zu müssen, entscheidest du dich, eine weitere Hilfsmethode zu erstellen, die dir dabei hilft.

Implementiere die (static) Erweiterungsmethode LogAnalysis.SubstringBetween(), die zwei String-Trennzeichen entgegennimmt und den Teilstring zurückgibt, der zwischen den beiden Trennzeichen liegt.

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

3. Die Nachricht in einem Log parsen

Implementiere die (static) Erweiterungsmethode LogAnalysis.Message(), die die in einem Log enthaltene Nachricht zurückgibt.

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

4. Den Log-Level in einem Log parsen

Implementiere die (static) Erweiterungsmethode LogAnalysis.LogLevel(), die den Log-Level eines Logs zurückgibt.

var log = "[ERROR]: Missing ; on line 20.";
log.LogLevel(); // => returns "ERROR"
Über GitHub bearbeiten Der Link öffnet sich in einem neuen Fenster oder Tab
C# Exercism

Bereit, mit Loganalyse zu starten?

Melde dich bei Exercism an, um C# mit 62 Konzepte178 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.