Anda dapat mencetak dan melihat log di waktu proses Node.js. Log yang dicetak membantu menemukan masalah dengan cepat atau menganalisis informasi eksekusi fungsi, seperti proses dan durasi eksekusi. Hal ini meningkatkan keandalan dan stabilitas sistem.
Cetak log
Log yang dicetak oleh suatu fungsi ke output standar (stdout) disimpan dalam Logstore yang ditentukan di Simple Log Service. Anda dapat menggunakan salah satu metode berikut untuk mencetak log ke stdout. Contoh kode berikut mengilustrasikan cara kerjanya:
Modul ECMAScript
Contoh ini hanya mendukung Node.js 18 atau yang lebih baru.
Kode contoh mendukung penyebaran satu klik. Anda dapat menyebarkan kode contoh di Function Compute dengan satu klik. nodejs-fc-log-es
export const handler = async (event, context) => {
process.stdout.write('hi,fc\n');
console.log('hello,world');
context.logger.info('hello,fc');
return "Hello World!";
};
Modul CommonJS
'use strict';
exports.handler = (event, context, callback) => {
process.stdout.write('hi,fc\n');
console.log('hello,world');
context.logger.info('hello,fc');
callback(null, 'hello,world');
};
Use process.stdout.write to print logs
Jika Anda menggunakan metode ini untuk mencetak log, isi log akan dicetak apa adanya. Contoh log:
hi,fcUse console.log to print logs
Jika Anda menggunakan metode ini untuk mencetak log, setiap log mencakup informasi seperti waktu, ID permintaan, dan tingkat log. Contoh log:
2024-03-04 07:01:16.927 1-65e571bc-158a59e8-b63f98cd471c [info] hello,worldUse context.logger to print logs
Jika Anda mengonfigurasi konkurensi instance fungsi ke nilai lebih besar dari 1, satu instance fungsi secara bersamaan memproses beberapa permintaan. Dalam hal ini, kami sarankan menggunakan context.logger untuk mencetak log guna membedakan log dari setiap permintaan berdasarkan ID permintaan. Contoh log:
2024-03-04 07:01:16.927 1-65e571bc-158a59e8-b63f98cd471c [[object Object]] hello,fcTingkat keparahan log kustom
Tingkat keparahan log kustom hanya didukung di waktu proses Node.js 18 dan Node.js 20.
Anda dapat menyesuaikan tingkat keparahan log menggunakan variabel lingkungan ALIYUN_FC_LOG_LEVEL. Tingkat log kustom, dari yang paling rendah hingga paling tinggi, adalah: debug, info, warn, dan error, dengan debug sebagai tingkat terendah dan error sebagai tingkat tertinggi.
Hanya log dengan tingkat keparahan lebih tinggi atau sama dengan ALIYUN_FC_LOG_LEVEL yang akan dicetak.
Sebagai contoh, jika Anda mengatur variabel lingkungan menjadi ALIYUN_FC_LOG_LEVEL=warn, hanya log dengan tingkat warn atau lebih tinggi (yaitu log warn dan error) yang dicetak. Tingkat default untuk log yang dicetak menggunakan console.log adalah info. Karena tingkat info lebih rendah daripada tingkat warn yang dikonfigurasi, log info tidak akan dicetak. Log yang dicetak menggunakan process.stdout.write() tidak dipengaruhi oleh variabel lingkungan ini dan selalu dicetak.
Prosedur
Buat direktori kode untuk pengujian, misalnya
code.Di direktori
code, buat file bernamaindex.js. Simpan kode contoh berikut ke dalam fileindex.js.'use strict'; exports.handler = (event, context, callback) => { process.stdout.write('stdout log\n'); console.log('console log'); context.logger.debug('context log info'); context.logger.info('context log info'); context.logger.warn('context log warn'); context.logger.error('context log error'); callback(null, 'hello,world'); }Pada halaman Buat Fungsi di konsol Function Compute, atur tipe fungsi menjadi Event Function, atur Runtime ke Node.js 18 atau Node.js 20, dan atur metode unggah kode menjadi Upload Folder. Untuk informasi selengkapnya, lihat Buat fungsi event.
Pada halaman detail fungsi, klik tab Configuration. Di bagian Advanced Configuration, klik Edit, lalu ubah Environment Variables. Tambahkan variabel
ALIYUN_FC_LOG_LEVEL=warndan klik Deploy.Klik Test Function. Output log adalah sebagai berikut:
stdout log
2024-06-19 08:48:51.672 1--xxx-xxx-xxx [warn] context log warn
2024-06-19 08:48:51.672 1--xxx-xxx-xxx [error] context log errorLihat log
Setelah fungsi dieksekusi, Anda dapat melihat log pada tab Logs. Untuk informasi selengkapnya, lihat Lihat log pemanggilan fungsi.