E2 — Lokianalysaattori (yksinkertaiset suodattimet ja laskurit)
Jäsennä muistissa olevaa lokirivien taulukkoa, suodata tason tai avainsanan perusteella ja laske tapahtumat Mapilla. Pidä toteutus pienenä ja luettavana
E2 — Lokianalysaattori (yksinkertaiset suodattimet ja laskurit) on ilmainen JavaScript Academy-oppitunti CoddyKitissä. Tämä on oppitunti 2/3. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu JavaScript Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. JavaScript Academy-kurssilla on yhteensä 3 oppituntia.
Mitä rakennamme
Tavoite: Analysoikaa lokeja muistissa.
- Esittäkää rivit pieninä merkkijonoina
- Suodattakaa tason tai hakusanan perusteella
- Laskekaa Map-rakenteella
- Pitäkää funktiot lyhyinä ja selkeinä

Tiedot ja jäsentäjä
Luokaa kullekin riville yksinkertainen rakenne: aika, taso ja teksti. Se riittää suodattimiin ja laskureihin.
// 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]));
Suodatuksen perusteet
Kirjoittakaa pieniä suodatin-funktioita jokaista yleistä kysymystä varten. Lyhyt ja helposti luettava koodi on parempi kuin nokkela.
// 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);
Laskurit Map-rakenteella
Käyttäkää laskureihin Map-rakennetta: päivitykset ovat nopeita ja jokaisen avaimen arvo on helppo lukea.
// 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"));
Top-N-esimerkki
Tehkää pientä merkkijonojen poimintaa ja järjestäkää tulokset lukumäärän sisältävän Map-rakenteen avulla. Pitäkää jäsentämissäännöt yksinkertaisina.
// 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));
Ohjeita aloittelijoille
Vinkit:
- Tehkää ensin pieni jäsentäjä.
- Kirjoittakaa jokaista kysymystä varten pieniä suodatin-apufunktioita.
- Laskekaa Map-rakenteella.
- Suosikaa aloittelijoille yksinkertaisia merkkijonoja ja selkeitä silmukoita.

Map-rakenteella laskemisen tietovisa
Pikatarkistus: laskemiseen sopiva tietorakenne.

Kertaus
Kertaus: Jäsentäkää tiedot pieneksi rakenteeksi, suodattakaa tason ja hakusanan perusteella ja laskekaa Map-rakenteella. Pitäkää jokainen apufunktio lyhyenä ja ilmeisenä.

Opi JavaScript tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 59
- Oppitunnit
- 200
Usein kysytyt kysymykset
Onko oppitunti ”E2 — Lokianalysaattori (yksinkertaiset suodattimet ja laskurit)” ilmainen?
Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa JavaScript Academy-oppimispolun 3 oppituntia, myös oppitunnin “E2 — Lokianalysaattori (yksinkertaiset suodattimet ja laskurit)”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. JavaScript Academy-kurssilla on yhteensä 3 oppituntia.
Mitä opin oppitunnilla ”E2 — Lokianalysaattori (yksinkertaiset suodattimet ja laskurit)”?
Jäsennä muistissa olevaa lokirivien taulukkoa, suodata tason tai avainsanan perusteella ja laske tapahtumat Mapilla. Pidä toteutus pienenä ja luettavana Harjoittelet JavaScript Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni JavaScript Academy-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin JavaScript Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 2/3.
Kuinka kauan ”E2 — Lokianalysaattori (yksinkertaiset suodattimet ja laskurit)”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä JavaScript Academy-oppitunnilla?
Kyllä. Jokainen JavaScript Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- E1 — Lausekkeiden laskin (osa 1: + ja - vasemmalta oikealle)
- E2 — Lokianalysaattori (yksinkertaiset suodattimet ja laskurit)
- E3 — Promise-allas/jono (asynkroninen rinnakkaisuus)