0Pricing
JavaScript Academy · Ders

E2 — Günlük Çözümleyici (Basit Süzgeçler ve Sayaçlar)

Bellek içindeki günlük satırlarından oluşan bir diziyi ayrıştırın, düzeye/anahtar sözcüğe göre süzün ve olayları Map ile sayın. Küçük ve okunabilir tutun.

E2 — Günlük Çözümleyici (Basit Süzgeçler ve Sayaçlar), CoddyKit'te ücretsiz bir JavaScript Academy dersidir. Bu, 3 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, JavaScript Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. JavaScript Academy kursu toplamda 3 dersten oluşur.

Oluşturacağımız şey

Amaç: Kayıtları bellekte analiz edin.

  • Satırları küçük metinler olarak temsil edin
  • level veya anahtar kelimeye göre filtreleyin
  • Map ile sayın
  • İşlevleri kısa ve anlaşılır tutun
E2 — Günlük Çözümleyici (Basit Süzgeçler ve Sayaçlar) — resim 1

Veri + ayrıştırıcı

Her satır için basit bir yapı oluşturun: time, level, text. Bu, filtreler ve sayaçlar için yeterlidir.

// 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 — Günlük Çözümleyici (Basit Süzgeçler ve Sayaçlar) — resim 2

Filtreleme temelleri

Yaygın soruların her biri için küçük filtre işlevleri yazın. Kısa ve okunabilir kod, zekice yazılmış koddan daha iyidir.

// 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 — Günlük Çözümleyici (Basit Süzgeçler ve Sayaçlar) — resim 3

Map ile sayaçlar

Sayaçlar için bir Map kullanın: hızlı güncellemeler ve anahtar başına kolay okumalar sağlar.

// 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 — Günlük Çözümleyici (Basit Süzgeçler ve Sayaçlar) — resim 4

En yüksek N örneği

Küçük bir metin çıkarma işlemi yapın ve bir sayım Map'i ile sıralayın. Ayrıştırma kurallarını basit tutun.

// 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 — Günlük Çözümleyici (Basit Süzgeçler ve Sayaçlar) — resim 5

Yeni başlayanlara rehberlik

İpuçları:

  • Önce küçük bir ayrıştırıcı oluşturun.
  • Her soru için küçük filtre yardımcıları yazın.
  • Bir Map ile sayın.
  • Yeni başlayanlar için basit metinleri ve anlaşılır döngüleri tercih edin.
E2 — Günlük Çözümleyici (Basit Süzgeçler ve Sayaçlar) — resim 6

Map ile sayma sınavı

Hızlı kontrol: Sayma yapısı.

E2 — Günlük Çözümleyici (Basit Süzgeçler ve Sayaçlar) — resim 7

Özet

Özet: Küçük bir yapıya ayrıştırın, level/anahtar kelimeye göre filtreleyin ve bir Map ile sayın. Her yardımcı işlevi kısa ve açık tutun.

E2 — Günlük Çözümleyici (Basit Süzgeçler ve Sayaçlar) — resim 8

Sıkça Sorulan Sorular

“E2 — Günlük Çözümleyici (Basit Süzgeçler ve Sayaçlar)” dersi ücretsiz mi?

Evet — “E2 — Günlük Çözümleyici (Basit Süzgeçler ve Sayaçlar)” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve JavaScript Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. JavaScript Academy kursu toplamda 3 dersten oluşur.

“E2 — Günlük Çözümleyici (Basit Süzgeçler ve Sayaçlar)” dersinde ne öğreneceğim?

Bellek içindeki günlük satırlarından oluşan bir diziyi ayrıştırın, düzeye/anahtar sözcüğe göre süzün ve olayları Map ile sayın. Küçük ve okunabilir tutun. JavaScript Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

JavaScript Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te JavaScript Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 3 dersinin 2. dersidir.

“E2 — Günlük Çözümleyici (Basit Süzgeçler ve Sayaçlar)” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu JavaScript Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her JavaScript Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. E1 — İfade Değerlendirici (1. kısım: + ve - LTR)
  2. E2 — Günlük Çözümleyici (Basit Süzgeçler ve Sayaçlar)
  3. E3 — Promise Havuzu/Kuyruğu (Eşzamansız Eşzamanlılık)
← JavaScript Academy Sayfasına Dön