JavaScript Academy · leksjon

E2 — Logganalyse (enkle filtre og tellere)

Pars en array med logglinjer i minnet, filtrer etter nivå/nøkkelord og tell hendelser med Map. Hold det lite og lesbart.

Leksjon 2 av 38 trinn

E2 — Logganalyse (enkle filtre og tellere) er en gratis leksjon i JavaScript Academy på CoddyKit. Dette er leksjon 2 av 3. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i JavaScript Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i JavaScript Academy inneholder totalt 3 leksjoner.

Dette skal vi bygge

Mål: Analysere logger i minnet.

  • Representer linjer som korte strenger
  • Filtrer etter nivå eller nøkkelord
  • Tell med en Map
  • Hold funksjonene korte og tydelige
E2 — Logganalyse (enkle filtre og tellere) — illustrasjon 1

Data og parser

Lag en enkel struktur per linje: tidspunkt, nivå og tekst. Det er nok for filtrering og telling.

// 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 — Logganalyse (enkle filtre og tellere) — illustrasjon 2

Grunnleggende filtrering

Skriv små filter-funksjoner for hvert vanlig spørsmål. Kort og lesbart er bedre enn smart.

// 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 — Logganalyse (enkle filtre og tellere) — illustrasjon 3

Tellere med Map

Bruk en Map til tellere: raske oppdateringer og enkel lesing per nøkkel.

// 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 — Logganalyse (enkle filtre og tellere) — illustrasjon 4

Eksempel på topp-N

Gjør et lite uttrekk fra strenger og ranger med et Map for telling. Hold reglene for parsing enkle.

// 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 — Logganalyse (enkle filtre og tellere) — illustrasjon 5

Veiledning for nybegynnere

Tips:

  • Lag en liten parser først.
  • Skriv små filter-hjelpere for hvert spørsmål.
  • Tell med en Map.
  • Foretrekk enkle strenger og tydelige løkker for nybegynnere.
E2 — Logganalyse (enkle filtre og tellere) — illustrasjon 6

Quiz om telling med Map

Hurtigsjekk: Struktur for telling.

E2 — Logganalyse (enkle filtre og tellere) — illustrasjon 7

Oppsummering

Oppsummering: Parse til en liten struktur, filtrer etter nivå/nøkkelord, og tell med en Map. Hold hver hjelper kort og tydelig.

E2 — Logganalyse (enkle filtre og tellere) — illustrasjon 8
Gratis å komme i gang

Lær deg JavaScript med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
59
Leksjoner
200

Ofte stilte spørsmål

Er leksjonen «E2 — Logganalyse (enkle filtre og tellere)» gratis?

Ja – du kan lese valgfritt 3 av leksjonene i læringsstien JavaScript Academy, inkludert «E2 — Logganalyse (enkle filtre og tellere)», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i JavaScript Academy inneholder totalt 3 leksjoner.

Hva lærer jeg i «E2 — Logganalyse (enkle filtre og tellere)»?

Pars en array med logglinjer i minnet, filtrer etter nivå/nøkkelord og tell hendelser med Map. Hold det lite og lesbart. Du øver på JavaScript Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med JavaScript Academy?

Ingen tidligere erfaring er nødvendig. JavaScript Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 2 av 3.

Hvor lang tid tar leksjonen «E2 — Logganalyse (enkle filtre og tellere)»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne JavaScript Academy-leksjonen?

Ja. Alle JavaScript Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. E1 — Uttrykksberegner (del 1: + og - fra venstre mot høyre)
  2. E2 — Logganalyse (enkle filtre og tellere)
  3. E3 — Promise-pool/kø (asynkron samtidighet)
← Tilbake til JavaScript Academy