logger.info(message, "abc");
La sortie est :
{"0":"a","1":"b","2":"c","level":"info","message":"message"}
Je suppose que c'est parce que la chaîne méta est combinée dans l'objet avant la chaîne, cela semble bien pire avec la trace de la pile (grand tableau). Peut-être qu'un tel cas, la sortie devrait être :
{"metadata":"abc","level":"info","message":"message"}
METTRE À JOUR:
le format simple a aussi ce problème :
Sortir:
info : message {"0":"a","1":"b","2":"c"}
Cela peut être accompli en utilisant des formats personnalisés dans [email protected]
. Veuillez envisager une mise à niveau.
Ce n'est pas un appel d'API pris en charge dans winston
- vous fournissez une chaîne en tant que métadonnées, pas un objet. Voici quelques appels d'API valides :
// 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 }
});
Si vous voulez une sortie qui ressemble à ceci :
{"metadata":"abc","level":"info","message":"message"}
alors fais ceci :
logger.info('message', { metadata: 'abc' });
... va laisser ce ticket ouvert en tant que bogue de documentation pour mieux expliquer comment fonctionne l'arité variable dans les API de journalisation de base de winston
.
@ChrisAlderson FYI la raison pour laquelle ce n'est pas un problème de format personnalisé est à cause de ce bloc de code :
const info = Object.assign({}, meta, {
[LEVEL]: level,
level,
message: msg
});
puisque meta
est une chaîne dans ce cas – "abc"
cela devient l'objet {"0":"a","1":"b","2":"c"}
qui est alors la base du info
à l'avenir.
Commentaire le plus utile
METTRE À JOUR:
le format simple a aussi ce problème :
Sortir:
info : message {"0":"a","1":"b","2":"c"}