Trilhas
/
C#
C#
/
Exercícios
/
Análise de logs
Análise de logs

Análise de logs

Exercício de aprendizagem

Introdução

Métodos de extensão

Os métodos de extensão permitem adicionar métodos a tipos existentes sem criar um novo tipo derivado, sem recompilar e sem modificar o tipo original de outra forma. Eles são definidos como métodos estáticos, mas são chamados com a sintaxe de um método de instância. O primeiro parâmetro vem precedido do modificador this e especifica em qual tipo o método opera. Os métodos de extensão entram no escopo no nível do namespace.

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

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

Instruções

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

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

Há três níveis de log diferentes:

  • INFO
  • WARNING
  • ERROR

Você tem várias tarefas, e cada uma vai receber uma linha de log e pedir que você faça algo com ela.

1. Permitir recuperar a string depois de uma substring específica

Olhando os logs do último mês, você vê que a mensagem de teste sempre está depois de uma substring específica. Como você prevê que vai precisar extrair a mensagem de teste em algum momento próximo, decide criar um método auxiliar para ajudar nisso.

Implemente o método de extensão (static) LogAnalysis.SubstringAfter(), que recebe um delimitador do tipo string e retorna a substring depois do delimitador.

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

2. Permitir recuperar a string entre duas substrings

Olhando com mais atenção, você vê que o nível de log sempre está entre colchetes ([ e ]). Como você também prevê que vai precisar extrair o nível de log em algum momento próximo, decide criar outro método auxiliar para ajudar nisso.

Implemente o método de extensão (static) LogAnalysis.SubstringBetween(), que recebe dois delimitadores do tipo string e retorna a substring que fica entre os dois delimitadores.

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

3. Extrair a mensagem de um log

Implemente o método de extensão (static) LogAnalysis.Message() para retornar a mensagem contida em um log.

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

4. Extrair o nível de log de um log

Implemente o método de extensão (static) LogAnalysis.LogLevel() para retornar o nível de log de um log.

var log = "[ERROR]: Missing ; on line 20.";
log.LogLevel(); // => returns "ERROR"
Editar via GitHub O link abre em uma nova janela ou aba
C# Exercism

Tudo pronto para começar Análise de logs?

Crie sua conta no Exercism para aprender e dominar C# com 62 conceitos178 exercícios e mentoria humana de verdade, tudo de graça.