Parcours
/
Gleam
Gleam
/
Exercices
/
Niveaux de logs
Niveaux de logs

Niveaux de logs

Exercice d'apprentissage

Introduction

Les strings

En Gleam, les chaînes de caractères sont du texte immuable entouré de guillemets doubles. Elles prennent en charge les caractères Unicode et peuvent s'étendre sur plusieurs lignes.

let greeting = "Hello, Joe! 📞"

let multi_line_string = "one
two
three"

On peut concaténer des strings à l'aide de l'opérateur <> :

let name = "Mike"
"Hello, " <> name <> "!"
// -> "Hello, Mike!"

Le module gleam/string de la bibliothèque standard fournit des fonctions pour manipuler les strings.

On peut faire du filtrage par motif sur les strings dans les expressions case :

pub fn on_an_excellent_adventure(name: String) -> Bool {
  case name {
    "Bill" -> True
    "Ted" -> True
    _ -> False
  }
}

Si tu veux filtrer sur le début d'une string et affecter le reste à une variable, tu peux utiliser le motif basé sur l'opérateur <> :

pub fn profession(name: String) -> String {
  case name {
    "Dr " <> rest -> rest <> " is a doctor"
    _ -> "I'm not sure what " <> name <> " does"
  }
}

Instructions

Dans cet exercice, tu vas traiter des lignes de log.

Chaque ligne de log est une string au format suivant : "[<LEVEL>]: <MESSAGE>".

Il existe trois niveaux de log différents :

  • INFO
  • WARNING
  • ERROR

Tu as trois tâches, qui prennent chacune une ligne de log et te demandent d'en faire quelque chose.

1. Récupère le message d'une ligne de log

Implémente la fonction message pour qu'elle renvoie le message d'une ligne de log :

message("[ERROR]: Invalid operation")
// -> "Invalid operation"

Les espaces en début et en fin de ligne doivent être supprimés :

message("[WARNING]:  Disk almost full\r\n")
// -> "Disk almost full"

2. Récupère le niveau de log d'une ligne de log

Implémente la fonction log_level pour qu'elle renvoie le niveau de log d'une ligne de log, en minuscules :

log_level("[ERROR]: Invalid operation")
// -> "error"

3. Reformate une ligne de log

Implémente la fonction reformat qui reformate la ligne de log, en plaçant le message en premier et le niveau de log après, entre parenthèses :

reformat("[INFO]: Operation completed")
// -> "Operation completed (info)"
Modifie via GitHub Le lien s'ouvre dans une nouvelle fenêtre ou un nouvel onglet
Gleam Exercism

Prêt à commencer Niveaux de logs ?

Inscris-toi sur Exercism pour apprendre et maîtriser Gleam avec 33 concepts122 exercices, et un vrai mentorat humain, le tout gratuitement.