Latihan 1: Structured Logging — Debugging

Latihan 1 dari materi Structured Logging di Debugging — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.

Lengkapi dua function di kode awal. LOG_LEVELS, pemanggilan, dan dua console.log di bawahnya sudah ada, biarkan begitu.

  1. createLogger(context): kembalikan object dengan tiga method, info(msg, meta), warn(msg, meta), dan error(msg, meta). Setiap method mencetak satu console.log berisi JSON.stringify dari object dengan field ini, berurutan: level (nama method-nya), timestamp (string tetap "2024-01-01"), context, message (isi msg), lalu semua isi meta (...meta).
  2. filterLogs(logs, level): kembalikan log yang level-nya sama dengan atau lebih tinggi dari level, memakai angka di LOG_LEVELS (info 1, warn 2, error 3).

Output-nya harus tiga baris ini, berurutan:

  1. {"level":"info","timestamp":"2024-01-01","context":"auth","message":"User login","userId":42}
  2. 2
  3. warn

Baris pertama dicek utuh, persis seperti di atas: kelima field-nya, termasuk "timestamp":"2024-01-01" dan "message":"User login", dengan urutan yang sama. Ada juga cek dengan data lain: filterLogs dengan minimum "warn" harus meloloskan warn dan error saja, dan createLogger("kas").warn harus berupa function.

Hint