Tracks
/
C#
C#
/
Ejercicios
/
Análisis de registros
Análisis de registros

Análisis de registros

Ejercicio de aprendizaje

Introducción

Métodos de extensión

Los métodos de extensión permiten agregar métodos a tipos existentes sin crear un nuevo tipo derivado, sin recompilar ni modificar de otro modo el tipo original. Se definen como métodos estáticos, pero se llaman usando la sintaxis de método de instancia. Su primer parámetro va precedido del modificador this y especifica sobre qué tipo opera el método, y se incorporan al ámbito a nivel del espacio de nombres.

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

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

Instrucciones

En este ejercicio vas a procesar líneas de log.

Cada línea de log es un string con el siguiente formato: "[<LEVEL>]: <MESSAGE>".

Hay tres niveles de log distintos:

  • INFO
  • WARNING
  • ERROR

Tienes varias tareas; cada una recibe una línea de log y te pide que hagas algo con ella.

1. Permite obtener el string que sigue a una subcadena específica

Al mirar los logs del último mes, ves que el mensaje de prueba siempre está después de una subcadena específica. Como prevés que tendrás que extraer el mensaje de prueba pronto, decides crear un método auxiliar que te ayude con eso.

Implementa el método de extensión (static) LogAnalysis.SubstringAfter(), que recibe un string delimitador y devuelve la subcadena que va después del delimitador.

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

2. Permite obtener el string que está entre dos subcadenas

Al revisar más a fondo, ves que el nivel de log siempre está entre corchetes ([ y ]). Como también prevés que tendrás que extraer el nivel de log pronto, decides crear otro método auxiliar que te ayude con eso.

Implementa el método de extensión (static) LogAnalysis.SubstringBetween() que recibe dos strings delimitadores y devuelve la subcadena que está entre los dos delimitadores.

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

3. Extrae el mensaje de un log

Implementa el método de extensión (static) LogAnalysis.Message() para devolver el mensaje contenido en un log.

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

4. Extrae el nivel de log de un log

Implementa el método de extensión (static) LogAnalysis.LogLevel() para devolver el nivel de log de un log.

var log = "[ERROR]: Missing ; on line 20.";
log.LogLevel(); // => returns "ERROR"
Editar en GitHub El enlace se abre en una ventana o una pestaña nuevas
C# Exercism

¿Todo listo para empezar Análisis de registros?

Regístrate en Exercism para aprender y dominar C# con 62 conceptos178 ejercicios y mentoría humana real, todo gratis.