Logger Log
NocoBase menyediakan sistem log berkinerja tinggi yang berbasis pada pino. Di tempat mana pun yang memiliki context, dapat mengakses instance log melalui ctx.logger, untuk mencatat log kunci runtime plugin atau sistem.
Penggunaan Dasar
Method-method ini sesuai dengan level log yang berbeda (dari tinggi ke rendah):
Format Log
Setiap output log adalah format JSON terstruktur, secara default berisi field berikut:
Contoh output:
Binding Konteks
ctx.logger akan otomatis menyuntikkan informasi konteks, seperti plugin, modul, atau sumber request saat ini, sehingga log dapat melacak sumber dengan lebih akurat.
Contoh output (dengan konteks):
Log Kustom
Anda dapat membuat instance logger kustom di plugin, mewarisi atau memperluas konfigurasi default:
Sub logger akan mewarisi konfigurasi logger utama dan otomatis menambahkan konteks.
Pembagian Level Log
Level log Pino mengikuti definisi numerik dari tinggi ke rendah, semakin kecil nilai numerik semakin rendah prioritasnya.
Berikut adalah tabel pembagian level log lengkap:
Pino hanya akan output log yang lebih besar atau sama dengan konfigurasi level saat ini. Contoh, ketika level log adalah info, log debug dan trace akan diabaikan.
Best Practice dalam Pengembangan Plugin
-
Menggunakan Log Konteks
Gunakanctx.loggerdi plugin, model, atau konteks aplikasi, dapat otomatis membawa informasi sumber. -
Membedakan Level Log
- Gunakan
erroruntuk mencatat anomali bisnis - Gunakan
infountuk mencatat perubahan status - Gunakan
debuguntuk mencatat informasi debug development
- Gunakan
-
Hindari Log Berlebihan
Terutama pada leveldebugdantrace, disarankan hanya diaktifkan di environment development. -
Menggunakan Data Terstruktur
Memasukkan parameter objek daripada menggabungkan string, membantu analisis dan filter log.
Melalui cara di atas, developer dapat lebih efisien melacak proses eksekusi plugin, menyelesaikan masalah, dan menjaga sistem log tetap terstruktur dan dapat diperluas.

