0Pricing
JavaScript Academy · Lección

E2: analizador de logs (filtros y contadores sencillos)

Analice un array en memoria de líneas de log, filtre por nivel o palabra clave y cuente eventos con Map. Manténgalo pequeño y fácil de leer.

E2: analizador de logs (filtros y contadores sencillos) es una lección gratuita de JavaScript Academy en CoddyKit. Esta es la lección 2 de 3. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de JavaScript Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de JavaScript Academy incluye 3 lecciones en total.

Lo que construiremos

Objetivo: analizar registros en memoria.

  • Represente las líneas como cadenas pequeñas
  • Filtre por nivel o palabra clave
  • Cuente con un Map
  • Mantenga las funciones breves y claras
E2: analizador de logs (filtros y contadores sencillos) — ilustración 1

Datos y analizador

Cree una estructura sencilla para cada línea: hora, nivel y texto. Es suficiente para los filtros y contadores.

// Simulated log lines (time level message)
const LINES = [
  "10:00 INFO  Start app",
  "10:01 WARN  Low memory",
  "10:02 INFO  User login /home",
  "10:03 ERROR DB timeout",
  "10:04 INFO  User login /products",
  "10:05 ERROR Network fail",
  "10:06 WARN  Retry request"
];

// Tiny parser: returns { time, level, text }
function parseLine(line) {
  // split on spaces, compact, then rebuild pieces
  const parts = line.trim().split(/\\s+/);
  if (parts.length < 3) return null;
  const time = parts[0];
  const level = parts[1];
  const text = parts.slice(2).join(" ");
  return { time: time, level: level, text: text };
}

console.log("parsed:", parseLine(LINES[2]));
E2: analizador de logs (filtros y contadores sencillos) — ilustración 2

Fundamentos del filtrado

Escriba pequeñas funciones de filtrado para cada pregunta habitual. Lo breve y legible es mejor que lo ingenioso.

// Filter by level or by keyword (case-sensitive for simplicity)
function filterByLevel(lines, want) {
  const out = [];
  for (const line of lines) {
    const p = parseLine(line);
    if (p && p.level === want) out.push(p);
  }
  return out;
}

function filterByKeyword(lines, word) {
  const out = [];
  for (const line of lines) {
    const p = parseLine(line);
    if (p && p.text.indexOf(word) !== -1) out.push(p);
  }
  return out;
}

console.log("ERRORs:", filterByLevel(LINES, "ERROR").length);
console.log("login :", filterByKeyword(LINES, "login").length);
E2: analizador de logs (filtros y contadores sencillos) — ilustración 3

Contadores con Map

Use un Map para los contadores: permite actualizaciones rápidas y lecturas sencillas por clave.

// Count how many lines per level
function countByLevel(lines) {
  const counts = new Map();
  for (const line of lines) {
    const p = parseLine(line);
    if (!p) continue;
    const old = counts.get(p.level) || 0;
    counts.set(p.level, old + 1);
  }
  return counts;
}

const c = countByLevel(LINES);
console.log("INFO :", c.get("INFO"));
console.log("WARN :", c.get("WARN"));
console.log("ERROR:", c.get("ERROR"));
E2: analizador de logs (filtros y contadores sencillos) — ilustración 4

Ejemplo de los N primeros

Haga una pequeña extracción de cadenas y clasifique los resultados con un Map de conteo. Mantenga sencillas las reglas de análisis.

// Extract a path after "User login " and rank by frequency
function topLoginPaths(lines, k) {
  const freq = new Map();
  for (const line of lines) {
    const p = parseLine(line);
    if (!p) continue;
    const mark = "User login ";
    const idx = p.text.indexOf(mark);
    if (idx !== -1) {
      const path = p.text.slice(idx + mark.length).trim();
      const old = freq.get(path) || 0;
      freq.set(path, old + 1);
    }
  }
  // turn into array and sort descending by count
  const arr = Array.from(freq.entries());
  arr.sort(function (a, b) { return b[1] - a[1]; });
  return arr.slice(0, k);
}

console.log("top paths:", topLoginPaths(LINES, 3));
E2: analizador de logs (filtros y contadores sencillos) — ilustración 5

Orientación para principiantes

Consejos:

  • Cree primero un analizador pequeño.
  • Escriba pequeños ayudantes de filtrado para cada pregunta.
  • Cuente con un Map.
  • Prefiera cadenas sencillas y bucles claros para principiantes.
E2: analizador de logs (filtros y contadores sencillos) — ilustración 6

Cuestionario sobre el conteo con Map

Comprobación rápida: estructura para contar.

E2: analizador de logs (filtros y contadores sencillos) — ilustración 7

Resumen

Resumen: analice los datos para obtener una estructura pequeña, filtre por nivel o palabra clave y cuente con un Map. Mantenga cada ayudante breve y evidente.

E2: analizador de logs (filtros y contadores sencillos) — ilustración 8

Preguntas frecuentes

¿La lección «E2: analizador de logs (filtros y contadores sencillos)» es gratis?

Sí — el texto completo de «E2: analizador de logs (filtros y contadores sencillos)» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de JavaScript Academy, actualiza a CoddyKit PRO. El curso de JavaScript Academy incluye 3 lecciones en total.

¿Qué aprenderé en «E2: analizador de logs (filtros y contadores sencillos)»?

Analice un array en memoria de líneas de log, filtre por nivel o palabra clave y cuente eventos con Map. Manténgalo pequeño y fácil de leer. Practicas JavaScript Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar JavaScript Academy?

No se requiere experiencia previa. JavaScript Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 3.

¿Cuánto tiempo toma la lección «E2: analizador de logs (filtros y contadores sencillos)»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de JavaScript Academy?

Sí. Cada lección de JavaScript Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. E1: evaluador de expresiones (parte 1: + y - de izquierda a derecha)
  2. E2: analizador de logs (filtros y contadores sencillos)
  3. E3: pool/cola de Promises (concurrencia asíncrona)
← Volver a JavaScript Academy