Dokumen ini diterjemahkan oleh AI. Untuk ketidakakuratan apa pun, silakan lihat versi bahasa Inggris
NocoBase menyediakan sistem pencatatan (logging) berkinerja tinggi yang didasarkan pada pino. Di mana pun Anda memiliki akses ke context, Anda bisa mendapatkan instance logger melalui ctx.logger untuk mencatat log penting selama runtime plugin atau sistem.
Metode-metode ini sesuai dengan level log yang berbeda (dari tinggi ke rendah):
| Level | Metode | Deskripsi |
|---|---|---|
fatal | ctx.logger.fatal() | Kesalahan fatal, biasanya menyebabkan program berhenti |
error | ctx.logger.error() | Log kesalahan, menunjukkan kegagalan permintaan atau operasi |
warn | ctx.logger.warn() | Informasi peringatan, memberi tahu potensi risiko atau situasi tak terduga |
info | ctx.logger.info() | Informasi runtime umum |
debug | ctx.logger.debug() | Informasi debug, digunakan untuk lingkungan pengembangan |
trace | ctx.logger.trace() | Informasi pelacakan rinci, biasanya untuk diagnosis mendalam |
Setiap output log dalam format JSON terstruktur, secara default berisi bidang-bidang berikut:
| Bidang | Tipe | Deskripsi |
|---|---|---|
level | number | Level log |
time | number | Timestamp (milidetik) |
pid | number | ID Proses |
hostname | string | Nama host |
msg | string | Pesan log |
| Lainnya | object | Informasi konteks kustom |
Contoh output:
ctx.logger secara otomatis menyuntikkan informasi konteks, seperti plugin, modul, atau sumber permintaan saat ini, membuat log lebih akurat dalam melacak sumbernya.
Contoh output (dengan konteks):
Anda dapat membuat instance logger kustom di dalam plugin, mewarisi atau memperluas konfigurasi default:
Child logger akan mewarisi konfigurasi logger utama dan secara otomatis melampirkan konteks.
Level log Pino mengikuti definisi numerik dari tinggi ke rendah, di mana angka yang lebih kecil menunjukkan prioritas yang lebih rendah. Berikut adalah tabel hierarki level log lengkap:
| Nama Level | Nilai | Nama Metode | Deskripsi |
|---|---|---|---|
fatal | 60 | logger.fatal() | Kesalahan fatal, biasanya menyebabkan program tidak dapat terus berjalan |
error | 50 | logger.error() | Kesalahan umum, menunjukkan kegagalan permintaan atau pengecualian operasi |
warn | 40 | logger.warn() | Informasi peringatan, memberi tahu potensi risiko atau situasi tak terduga |
info | 30 | logger.info() | Informasi umum, mencatat status sistem atau operasi normal |
debug | 20 | logger.debug() | Informasi debug, untuk analisis masalah pada tahap pengembangan |
trace | 10 | logger.trace() | Informasi pelacakan rinci, untuk diagnosis mendalam |
silent | -Infinity | (Tidak ada metode yang sesuai) | Mematikan semua output log |
Pino hanya akan mengeluarkan log yang lebih besar dari atau sama dengan konfigurasi level saat ini. Misalnya, ketika level log adalah info, log debug dan trace akan diabaikan.
Gunakan Logger Konteks
Gunakan ctx.logger dalam konteks plugin, model, atau aplikasi untuk secara otomatis membawa informasi sumber.
Bedakan Level Log
error untuk mencatat pengecualian bisnisinfo untuk mencatat perubahan statusdebug untuk mencatat informasi debug pengembanganHindari Logging Berlebihan
Terutama pada level debug dan trace, disarankan untuk hanya mengaktifkannya di lingkungan pengembangan.
Gunakan Data Terstruktur Teruskan parameter objek daripada menggabungkan string, yang membantu analisis dan pemfilteran log.
Dengan mengikuti praktik-praktik di atas, pengembang dapat melacak eksekusi plugin dengan lebih efisien, memecahkan masalah, dan menjaga sistem log tetap terstruktur serta dapat diperluas.