Latihan 1 dari materi Application Logging di DevOps — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.
Lengkapi function createLogger(minLevel). Function ini mengembalikan object logger dengan empat method: debug, info, warn, dan error.
Kalau level method-nya lebih rendah dari minLevel, kembalikan null.
Kalau gak, kembalikan object { level, message, data, timestamp: "2024-01-01" } dengan urutan key persis itu. timestamp ditulis tetap "2024-01-01" supaya hasilnya bisa dicek.
Yang dinilai nilai kembalian function pemeriksa di bawah kode awal:
testLoggerInfoLog() memanggil createLogger("info").info("test", {"a":1}) dan harus mengembalikan {"level":"info","message":"test","data":{"a":1},"timestamp":"2024-01-01"}
testLoggerWarnBlocksInfo() memanggil createLogger("warn").info("test", {}) dan harus mengembalikan null
Cek tersembunyi: testLoggerErrorBlocksWarn() memanggil createLogger("error").warn("warning", {}) dan juga harus null.
Hasilnya dibandingkan sebagai teks JSON, jadi urutan key ikut dicek. Tiga function pemeriksa dan dua baris console.log di kode awal biarkan apa adanya.
Hint
Ubah nama level jadi angka supaya bisa dibandingkan: level method yang lebih kecil dari minimum dibuang dengan null, sisanya dikembalikan sebagai object.
Simpan const LEVELS = { debug: 0, info: 1, warn: 2, error: 3 } di dalam createLogger, tulis satu function log(level, message, data) yang mengecek LEVELS[level] < LEVELS[minLevel], lalu buat keempat method memanggil log dengan nama levelnya.
function log(level, message, data) { if (LEVELS[level] < LEVELS[minLevel]) return null; return { level, message, data, timestamp: "2024-01-01" }; } return { debug: (m, d) => log("debug", m, d), info: (m, d) => log("info", m, d), warn: (m, d) => log("warn", m, d), error: (m, d) => log("error", m, d) };
</>{ }.css=>#idfn()
Versi baru
HyperSheets
bagian dari BelajarWeb.dev
0%
Membuka gerbang…
HyperSheets
Memperbarui Aplikasi
Versi baru tersedia. Halaman akan dimuat ulang otomatis...