ctx.logger
Wrapper log berbasis pino, menyediakan log JSON terstruktur berkinerja tinggi. Direkomendasikan menggunakan ctx.logger sebagai pengganti console untuk pengumpulan dan analisis log yang lebih mudah.
Skenario Penggunaan
Semua skenario RunJS dapat menggunakan ctx.logger, untuk debugging, error tracking, performance analysis, dll.
Definisi Tipe
ctx.logger adalah engine.logger.child({ module: 'flow-engine' }), yaitu pino child logger dengan konteks module.
Level Log
pino mendukung level berikut (dari tertinggi ke terendah):
Penulisan yang Direkomendasikan
Direkomendasikan menggunakan bentuk level(msg, meta): pesan di depan, objek metadata opsional di belakang.
pino juga mendukung level(meta, msg) (objek di depan) atau level({ msg, ...meta }) (objek tunggal), dapat digunakan sesuai kebutuhan.
Contoh
Penggunaan Dasar
Menggunakan child() untuk Membuat Sub-logger
Hubungan dengan console
Direkomendasikan langsung menggunakan ctx.logger untuk mendapatkan log JSON terstruktur. Jika terbiasa menggunakan console, dapat disesuaikan: console.log → ctx.logger.info, console.error → ctx.logger.error, console.warn → ctx.logger.warn.
Format Log
pino menghasilkan output JSON terstruktur, setiap log berisi:
level: level log (numerik)time: timestamp (milidetik)msg: pesan logmodule: tetapflow-engine- Field kustom lainnya (diteruskan melalui objek)
Hal yang Perlu Diperhatikan
- Log adalah JSON terstruktur, untuk pengumpulan, pencarian, dan analisis yang lebih mudah
- Sub-logger yang dibuat melalui
child()juga direkomendasikan menggunakan penulisanlevel(msg, meta) - Sebagian environment runtime (seperti workflow) mungkin menggunakan cara output log yang berbeda
Terkait
- pino — Library log dasar

