Comment ouvrir une session JavaScript les objets et les tableaux à winston console.journal?

Je regardais le Nœud supérieur de systèmes d'enregistrement: npmlog, log4js, bunyan et winston et décidé de l'utiliser winston pour avoir le plus de npm mensuel de téléchargements.

Ce que je veux mettre en place est de coutume de l'enregistreur de qui je vais être en mesure d'utiliser l'environnement de développement avec logger.debug(...) qui n'est pas le journal de quoi que ce soit sur l'environnement de production. Cela va m'aider alors, quand je suis sur l'environnement de développement, je n'aurez pas besoin d'écrire quoi que ce soit puisque je vais en voir de toutes les sorties.

C'est ce que j'ai maintenant:

var level = 'debug';
if (process.env.NODE_ENV !== 'development'){
  level = 'production'; //this will never be logged!
}

var logger = new winston.Logger({
  transports: [
    //some other loggings
    new winston.transports.Console({
      name: 'debug-console',
      level: level,
      prettyPrint: true,
      handleExceptions: true,
      json: false,
      colorize: true
    })

  ],
  exitOnError: false //don't crush no error
});

Problème se produit lorsque j'essaie de connecter JavaScript Object ou Javascript Array. Avec Object, j'ai besoin de faire toJSON(), et pour Array j'ai besoin d'abord JSON.stringify() et puis JSON.parse().

C'est pas gentil d'écrire tout le temps cette méthode, juste pour se connecter à quelque chose que je veux. En outre, il n'est même pas économe en ressources, car ces méthodes de formatage doivent être exécutés avant logger.debug() se rend compte que c'est sur la production et qu'il ne devrait pas se connecter en premier lieu (en gros, c'est l'évaluation des arguments de l'appel de fonction). J'aime juste la façon dont le vieux-fashined console.log() journaux JavaScript les objets et les tableaux.

Maintenant, comme je l'ai écris à cette question, j'ai trouvé qu'il y est une façon de décrire format personnalisé pour chaque winston transports objet. C'est que la façon de le faire, ou est-il un autre moyen?

OriginalL'auteur Tommz | 2015-10-15