logger.info(pesan, "abc");
Keluarannya adalah:
{"0":"a","1":"b","2":"c","level":"info","message":"message"}
Saya kira ini karena string meta digabungkan ke dalam objek sebelum merangkai, Terlihat jauh lebih buruk dengan jejak tumpukan (array besar). Mungkin output kasus seperti itu seharusnya:
{"metadata":"abc","level":"info","message":"message"}
MEMPERBARUI:
format sederhana memiliki masalah ini juga:
Keluaran:
info: pesan {"0":"a","1":"b","2":"c"}
Ini dapat dicapai dengan menggunakan format khusus di [email protected]
. Harap pertimbangkan untuk meningkatkan.
Ini bukan panggilan API yang didukung di winston
– Anda menyediakan string sebagai metadata, bukan objek. Berikut adalah beberapa panggilan API yang valid:
// winston<strong i="7">@2</strong> API:
logger.log('info', 'Hello world', { custom: true });
logger.log('info', new Error('Yo, it\'s on fire'));
logger.log('info', '%s %d%%', 'A string', 50, { thisIsMeta: true });
// winston<strong i="8">@3</strong> API – a single JSON literal:
logger.log({ level: 'info', message: 'Hello world', custom: true });
logger.log({ level: 'info', message: new Error('Yo, it\'s on fire') });
logger.log({
level: 'info',
message: '%s %d%%',
splat: ['A string', 50],
meta: { thisIsMeta: true }
});
Jika Anda ingin output yang menyerupai ini:
{"metadata":"abc","level":"info","message":"message"}
lalu lakukan ini:
logger.info('message', { metadata: 'abc' });
... akan membiarkan tiket ini terbuka sebagai bug dokumentasi untuk menjelaskan dengan lebih baik cara kerja variabel arity di API pencatatan inti winston
.
@ChrisAlderson FYI alasan ini bukan masalah format khusus adalah karena blok kode ini :
const info = Object.assign({}, meta, {
[LEVEL]: level,
level,
message: msg
});
karena meta
adalah string dalam hal ini – "abc"
menjadi objek {"0":"a","1":"b","2":"c"}
yang kemudian menjadi basis dari info
ke depan.
Komentar yang paling membantu
MEMPERBARUI:
format sederhana memiliki masalah ini juga:
Keluaran:
info: pesan {"0":"a","1":"b","2":"c"}