Trilhas
/
Gleam
Gleam
/
Exercícios
/
Níveis de log
Níveis de log

Níveis de log

Exercício de aprendizagem

Introdução

Strings

Strings em Gleam são textos imutáveis entre aspas duplas. Elas suportam caracteres unicode e podem ter várias linhas.

let greeting = "Hello, Joe! 📞"

let multi_line_string = "one
two
three"

Strings podem ser unidas com o operador <>:

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

O módulo gleam/string da biblioteca padrão fornece funções para trabalhar com strings.

É possível fazer correspondência de padrões com strings em expressões case:

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

Se você quiser fazer correspondência com o início de uma string e atribuir o resto a uma variável, pode usar o padrão do operador <>:

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

Instruções

Neste exercício, você vai processar linhas de log.

Cada linha de log é uma string formatada assim: "[<LEVEL>]: <MESSAGE>".

Existem três níveis de log diferentes:

  • INFO
  • WARNING
  • ERROR

Você tem três tarefas, e cada uma delas recebe uma linha de log e pede que você faça algo com ela.

1. Obter a mensagem de uma linha de log

Implemente a função message para retornar a mensagem de uma linha de log:

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

Qualquer espaço em branco no início ou no fim deve ser removido:

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

2. Obter o nível de log de uma linha de log

Implemente a função log_level para retornar o nível de log de uma linha de log, que deve ser retornado em letras minúsculas:

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

3. Reformatar uma linha de log

Implemente a função reformat, que reformata a linha de log colocando a mensagem primeiro e o nível de log depois dela, entre parênteses:

reformat("[INFO]: Operation completed")
// -> "Operation completed (info)"
Editar via GitHub O link abre em uma nova janela ou aba
Gleam Exercism

Tudo pronto para começar Níveis de log?

Crie sua conta no Exercism para aprender e dominar Gleam com 33 conceitos122 exercícios e mentoria humana de verdade, tudo de graça.