Salut,
J'ai utilisé votre fonction de formateur pour fournir un format personnalisé à mes messages de journal. Cela fonctionne parfaitement pour le transport.Console mais le transport.File semble ignorer le formateur personnalisé.
voici mon formateur de fichier personnalisé :
function customFileFormatter (options) {
// Return string will be passed to logger.
return options.timestamp() +' ['+ options.level.toUpperCase() +'] '+ (undefined !== options.message ? options.message : '') +
(options.meta && Object.keys(options.meta).length ? '\n\t'+ JSON.stringify(options.meta) : '' );
}
c'est essentiel l'enregistreur donné dans votre exemple. Je l'applique comme ceci :
winston.add(winston.transports.File, {
name: 'info-file',
filename: logPath + '/info.log',
level: 'info',
maxsize: 15000000,
formatter: customFileFormatter
});
mais la sortie dans le fichier de journalisation reste la même :
{"level":"info","message":"INITIALISEING","timestamp":"2015-04-02T06:29:57.982Z"}
ça devrait être:
{"level":"[INFO]","message":"INITIALISEING","timestamp":"2015-04-02T06:29:57.982Z"}
Je ne sais pas ce qui ne va pas car la même chose fonctionne avec le transport.Console.
s'il vous plait aidez
les salutations
Tonacate
OK, c'est pas grave.
oublié de régler
json: false
mais ce serait cool si vous pouviez changer juste quelques champs dans la journalisation json :)
Il m'a fallu un peu pour savoir où définir "json: false". Réglez-le sur le(s) transport(s) de fichiers. Voici mon exemple :
const logFormatter = function(options) {
// Return string will be passed to logger.
return options.timestamp() +` `+ options.level.toUpperCase() +
` `+ (options.message ? options.message : ``) +
(options.meta && Object.keys(options.meta).length ?
`\n\t`+ JSON.stringify(options.meta) : `` );
};
const timestamp = function() {
const d = new Date();
return d.getHours() + `:` + d.getMinutes() + `:` +
d.getSeconds() + `m` + d.getMilliseconds();
};
const logger = new (winston.Logger)({
transports: [
new (winston.transports.File)({
timestamp: timestamp,
formatter: logFormatter,
level: `silly`,
name: `fileAll`,
filename: `fileAll.log`,
json: false, // set json:false on the file transport(s)
})
]
});
le formateur fonctionne bien pour moi mais l'horodatage imprime toujours une chaîne littérale
fonction () {
const d = nouvelle date();
return d.getHours() + :
+ d.getMinutes() + :
+
d.getSeconds() + m
+ d.getMilliseconds();
}|DEBUG|Message pour un débogage
fonction () {
const d = nouvelle Date();
return d.getHours() + :
+ d.getMinutes() + :
+
d.getSeconds() + m
+ d.getMilliseconds();
}|URGENCE|Message pour un débogage
OK, c'est pas grave.
oublié de régler
json: false
mais ce serait cool si vous pouviez changer juste quelques champs dans la journalisation json :)
Tu m'as fait gagner du temps ! Je me demande où est-ce documenté..
Commentaire le plus utile
OK, c'est pas grave.
oublié de régler
json: false
mais ce serait cool si vous pouviez changer juste quelques champs dans la journalisation json :)