0Pricing
JavaScript Academy · Leçon

E2 — Analyseur de journaux (filtres et compteurs simples)

Analysez un tableau de lignes de journal en mémoire, filtrez par niveau ou mot-clé et comptez les événements avec Map. Gardez le code court et lisible

E2 — Analyseur de journaux (filtres et compteurs simples) est une leçon JavaScript Academy gratuite sur CoddyKit. Ceci est la leçon 2 sur 3. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage JavaScript Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours JavaScript Academy comprend 3 leçons au total.

Ce que nous allons construire

Objectif : analyser des journaux en mémoire.

  • Représenter les lignes sous forme de petites chaînes
  • Filtrer selon le level ou un mot-clé
  • Compter avec une Map
  • Garder des fonctions courtes et claires
E2 — Analyseur de journaux (filtres et compteurs simples) — illustration 1

Données et analyseur

Créez une structure simple pour chaque ligne : time, level, texte. Cela suffit pour les filtres et les compteurs.

// 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 — Analyseur de journaux (filtres et compteurs simples) — illustration 2

Bases du filtrage

Écrivez de petites fonctions de filtrage pour chaque question courante. Un code court et lisible vaut mieux qu’un code astucieux.

// 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 — Analyseur de journaux (filtres et compteurs simples) — illustration 3

Compteurs avec Map

Utilisez une Map pour les compteurs : les mises à jour sont rapides et la lecture de chaque clé est simple.

// 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 — Analyseur de journaux (filtres et compteurs simples) — illustration 4

Exemple du Top-N

Effectuez une petite extraction de chaînes et classez les résultats avec une Map de comptage. Gardez les règles d’analyse simples.

// 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 — Analyseur de journaux (filtres et compteurs simples) — illustration 5

Conseils pour débuter

Conseils :

  • Commencez par un petit analyseur.
  • Écrivez de petits assistants de filtrage pour chaque question.
  • Comptez avec une Map.
  • Préférez des chaînes simples et des boucles claires pour les débutants.
E2 — Analyseur de journaux (filtres et compteurs simples) — illustration 6

Quiz sur le comptage avec Map

Vérification rapide : structure de comptage.

E2 — Analyseur de journaux (filtres et compteurs simples) — illustration 7

Récapitulatif

Récapitulatif : analysez chaque ligne dans une structure simple, filtrez selon le level ou le mot-clé et comptez avec une Map. Gardez chaque assistant court et évident.

E2 — Analyseur de journaux (filtres et compteurs simples) — illustration 8

Questions Fréquemment Posées

La leçon « E2 — Analyseur de journaux (filtres et compteurs simples) » est-elle gratuite ?

Oui — le texte complet de « E2 — Analyseur de journaux (filtres et compteurs simples) » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours JavaScript Academy, passe à CoddyKit PRO. Le cours JavaScript Academy comprend 3 leçons au total.

Qu'est-ce que j'apprendrai dans « E2 — Analyseur de journaux (filtres et compteurs simples) » ?

Analysez un tableau de lignes de journal en mémoire, filtrez par niveau ou mot-clé et comptez les événements avec Map. Gardez le code court et lisible Tu pratiques JavaScript Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer JavaScript Academy ?

Aucune expérience préalable n'est requise. JavaScript Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 3.

Combien de temps prend la leçon « E2 — Analyseur de journaux (filtres et compteurs simples) » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon JavaScript Academy ?

Oui. Chaque leçon JavaScript Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. E1 — Évaluateur d’expressions (1re partie : + et - de gauche à droite)
  2. E2 — Analyseur de journaux (filtres et compteurs simples)
  3. E3 — Réservoir ou file de promesses (concurrence asynchrone)
← Retour à JavaScript Academy