Parcours
/
C#
C#
/
Exercices
/
Analyse de logs
Analyse de logs

Analyse de logs

Exercice d'apprentissage

Introduction

Méthodes d'extension

Les méthodes d'extension permettent d'ajouter des méthodes à des types existants sans créer un nouveau type dérivé, sans recompiler ni modifier le type d'origine d'une autre manière. Elles sont définies comme des méthodes statiques mais sont appelées en utilisant la syntaxe de méthode d'instance. Leur premier paramètre, précédé du modificateur this, spécifie le type sur lequel la méthode opère, et elles sont mises dans la portée au niveau de l'espace de noms.

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

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

Instructions

Dans cet exercice, on va traiter des lignes de log.

Chaque ligne de log est une string formatée comme suit : "[<LEVEL>]: <MESSAGE>".

Il existe trois niveaux de log différents :

  • INFO
  • WARNING
  • ERROR

Tu as plusieurs tâches, et chacune prend une ligne de log et te demande d'en faire quelque chose.

1. Permets de récupérer la string après une sous-chaîne donnée

En regardant les logs du mois dernier, tu vois que le message de test se trouve toujours après une sous-chaîne donnée. Comme tu prévois de devoir extraire le message de test dans un futur proche, tu décides de créer une méthode utilitaire pour t'aider à le faire.

Implémente la méthode d'extension (static) LogAnalysis.SubstringAfter(), qui prend une string comme délimiteur et renvoie la sous-chaîne qui suit ce délimiteur.

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

2. Permets de récupérer la string entre deux sous-chaînes

En y regardant de plus près, tu vois que le niveau de log se trouve toujours entre crochets ([ et ]). Comme tu prévois également de devoir extraire le niveau de log dans un futur proche, tu décides de créer une autre méthode utilitaire pour t'aider à le faire.

Implémente la méthode d'extension (static) LogAnalysis.SubstringBetween() qui prend deux strings comme délimiteurs et renvoie la sous-chaîne comprise entre ces deux délimiteurs.

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

3. Analyse le message dans un log

Implémente la méthode d'extension (static) LogAnalysis.Message() pour renvoyer le message contenu dans un log.

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

4. Analyse le niveau de log dans un log

Implémente la méthode d'extension (static) LogAnalysis.LogLevel() pour renvoyer le niveau de log d'un log.

var log = "[ERROR]: Missing ; on line 20.";
log.LogLevel(); // => returns "ERROR"
Modifie via GitHub Le lien s'ouvre dans une nouvelle fenêtre ou un nouvel onglet
C# Exercism

Prêt à commencer Analyse de logs ?

Inscris-toi sur Exercism pour apprendre et maîtriser C# avec 62 concepts178 exercices, et un vrai mentorat humain, le tout gratuitement.