J'ai un enregistreur avec un transport de console et un autre transport qui va à un service de journalisation basé sur le cloud. Pour la console, je souhaite préfixer les messages avec un horodatage et les coloriser. Pour le service de journalisation basé sur le cloud, je ne veux pas d'horodatage car le service fournit le sien, et je ne veux pas non plus de couleurs.
Les PR pour cette fonctionnalité ont déjà été envoyés : #427 et #422
La configuration des formats par transport est-elle déjà possible, mais je n'ai pas vu cette capacité expliquée dans le README ?
Qu'à cela ne tienne, c'est effectivement possible, mais la documentation omet complètement de mentionner la fonctionnalité.
const logger = winston.createLogger({
transports: [
new winston.transports.File({
filename: 'error.log', level: 'error',
format: winston.format.simple(),
}),
new winston.transports.File({
filename: 'combined.log', level: 'debug',
format: winston.format.printf(info => `${new Date().toISOString(), ${info.message}`),
}),
],
});
logger.error('prefixed by the timestamp only in `combined.log`');
Ajouter définitivement à la documentation plz
@dandv Le code printf dans votre commentaire ne fonctionne pas
Alors cette ligne...
format: winston.format.printf(info => `${new Date().toISOString(), ${info.message}`),
... a besoin d'une accolade de fermeture comme ça
format: winston.format.printf(info => `${new Date().toISOString()}, ${info.message}`),
Merci pour le code et les connaissances pour le formatage personnalisé ! Très appréciée!
Peu importe, cela est en effet possible, mais la documentation omet complètement de mentionner la fonctionnalité.
const logger = winston.createLogger({ transports: [ new winston.transports.File({ filename: 'error.log', level: 'error', format: winston.format.simple(), }), new winston.transports.File({ filename: 'combined.log', level: 'debug', format: winston.format.printf(info => `${new Date().toISOString(), ${info.message}`), }), ], }); logger.error('prefixed by the timestamp only in `combined.log`');
@dandv et si j'ai un autre format en dehors des transports et à l'intérieur de la méthode create logger. Quel format sera appliqué ?
Peu importe, cela est en effet possible, mais la documentation omet complètement de mentionner la fonctionnalité.
const logger = winston.createLogger({ transports: [ new winston.transports.File({ filename: 'error.log', level: 'error', format: winston.format.simple(), }), new winston.transports.File({ filename: 'combined.log', level: 'debug', format: winston.format.printf(info => `${new Date().toISOString(), ${info.message}`), }), ], }); logger.error('prefixed by the timestamp only in `combined.log`');
@dandv et si j'ai un autre format en dehors des transports et à l'intérieur de la méthode create logger. Quel format sera appliqué ?
Celui à l'intérieur.
Commentaire le plus utile
Qu'à cela ne tienne, c'est effectivement possible, mais la documentation omet complètement de mentionner la fonctionnalité.