Rutas
/
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 añadir 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 utilizando la sintaxis de un método de instancia. Su primer parámetro va precedido por el modificador this y especifica sobre qué tipo opera el método; además, se incorporan al scope a nivel de 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, y cada una recibirá una línea de log y te pedirá que hagas algo con ella.

1. Permitir obtener el string que hay después de una subcadena concreta

Si observas los logs del último mes, verás que el mensaje de test siempre se encuentra después de una subcadena concreta. Como prevés que tendrás que extraer el mensaje de test en algún momento próximo, decides crear un método auxiliar que te ayude con eso.

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

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

2. Permitir obtener el string que hay entre dos subcadenas

Si te fijas mejor, verás que el nivel de log siempre se encuentra entre corchetes ([ y ]). Como también prevés que tendrás que extraer el nivel de log en algún momento próximo, decides crear otro método auxiliar que te ayude con eso.

Implementa el método de extensión (static) LogAnalysis.SubstringBetween(), que recibe dos delimitadores de tipo string y devuelve la subcadena que hay entre ambos delimitadores.

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

3. Analizar el mensaje de un log

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

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

4. Analizar 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 pestaña nueva
C# Exercism

¿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.