Winston: Autoriser la configuration des formats par transport au sein du même logger

Créé le 8 juil. 2018  ·  5Commentaires  ·  Source: winstonjs/winston

Quelle est la fonctionnalité ?

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.

Est-ce une fonctionnalité que vous êtes prêt à mettre en œuvre, avec notre soutien ?

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 ?

Commentaire le plus utile

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`');

Tous les 5 commentaires

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.

Cette page vous a été utile?
0 / 5 - 0 notes