0Pricing
JavaScript Academy · Lezione

E2 — Analizzatore di log (filtri e contatori semplici)

Analizzi un array in memoria di righe di log, filtri per livello o parola chiave e conti gli eventi con Map. Mantieni il codice breve e leggibile.

E2 — Analizzatore di log (filtri e contatori semplici) è una lezione JavaScript Academy gratuita su CoddyKit. Questa è la lezione 2 di 3. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento JavaScript Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso JavaScript Academy include 3 lezioni in totale.

Cosa costruiremo

Obiettivo: analizzare i log in memoria.

  • Rappresentare le righe come piccole stringhe
  • Filtrare per livello o parola chiave
  • Contare con una Map
  • Mantenere le funzioni brevi e chiare
E2 — Analizzatore di log (filtri e contatori semplici) — illustrazione 1

Dati + parser

Crei una struttura semplice per ogni riga: ora, livello, testo. È sufficiente per filtri e contatori.

// 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 — Analizzatore di log (filtri e contatori semplici) — illustrazione 2

Basi del filtraggio

Scriva piccole funzioni di filtro per ogni domanda comune. La brevità e la leggibilità sono preferibili all'astuzia.

// 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 — Analizzatore di log (filtri e contatori semplici) — illustrazione 3

Contatori con Map

Utilizzi una Map per i contatori: aggiornamenti rapidi e letture semplici per ogni chiave.

// 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 — Analizzatore di log (filtri e contatori semplici) — illustrazione 4

Esempio Top-N

Esegua una piccola estrazione di stringhe e definisca l'ordine usando una Map dei conteggi. Mantenga semplici le regole di parsing.

// 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 — Analizzatore di log (filtri e contatori semplici) — illustrazione 5

Indicazioni per principianti

Suggerimenti:

  • Crei prima un piccolo parser.
  • Scriva piccoli helper di filtro per ogni domanda.
  • Conti con una Map.
  • Preferisca stringhe semplici e cicli chiari per i principianti.
E2 — Analizzatore di log (filtri e contatori semplici) — illustrazione 6

Quiz sul conteggio con Map

Verifica rapida: struttura per il conteggio.

E2 — Analizzatore di log (filtri e contatori semplici) — illustrazione 7

Riepilogo

Riepilogo: esegua il parsing in una struttura minima, filtri per livello/parola chiave e conti con una Map. Mantenga ogni helper breve e ovvio.

E2 — Analizzatore di log (filtri e contatori semplici) — illustrazione 8

Domande Frequenti

La lezione «E2 — Analizzatore di log (filtri e contatori semplici)» è gratuita?

Sì — il testo completo di «E2 — Analizzatore di log (filtri e contatori semplici)» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso JavaScript Academy, passa a CoddyKit PRO. Il corso JavaScript Academy include 3 lezioni in totale.

Cosa imparerò in «E2 — Analizzatore di log (filtri e contatori semplici)»?

Analizzi un array in memoria di righe di log, filtri per livello o parola chiave e conti gli eventi con Map. Mantieni il codice breve e leggibile. Eserciti JavaScript Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare JavaScript Academy?

Non è richiesta alcuna esperienza precedente. JavaScript Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 3.

Quanto tempo richiede la lezione «E2 — Analizzatore di log (filtri e contatori semplici)»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione JavaScript Academy?

Sì. Ogni lezione JavaScript Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. E1 — Valutatore di espressioni (parte 1: + e - da sinistra a destra)
  2. E2 — Analizzatore di log (filtri e contatori semplici)
  3. E3 — Pool/coda di Promise (concorrenza asincrona)
← Torna a JavaScript Academy