67 votes

Enregistrement dans express js vers un fichier de sortie ?

Quelle est la meilleure façon d'enregistrer mon serveur web express js ? La fonction express.logger() intégrée ne fait qu'afficher les journaux à l'écran. Puis-je également les enregistrer dans un fichier dans le dossier /log ? De plus, le logger actuel enregistre automatiquement les requêtes et les réponses. J'ai besoin d'enregistrer certaines données d'application dans les fichiers journaux. Cela peut-il être fait en utilisant express.logger ?

Regards, Lalith

73voto

Did Points 601

Pour envoyer les journaux express ou de connexion dans un fichier, utilisez la fonction writeStream . Par exemple, pour envoyer les journaux express à ./myLogFile.log :

ouvrir le flux vers votre fichier en mode append avec :

var logFile = fs.createWriteStream('./myLogFile.log', {flags: 'a'}); //use {flags: 'w'} to open in write mode

ensuite, dans votre configuration express, utilisez :

app.use(express.logger({stream: logFile}));

devrait également fonctionner pour connect.logger.

49voto

Chad Williams Points 426

Regardez l'intergiciel connect que Express étend. Le express.logger() est le même que le connect.logger() :

http://expressjs.com/api.html#middleware

http://www.senchalabs.org/connect/logger.html

L'enregistreur a une option de flux qui peut être définie là où vous voulez que la sortie aille. Par défaut, elle est envoyée vers stdout. Vous pouvez également spécifier le format du journal que vous souhaitez utiliser.

20voto

generalhenry Points 9763

Vous devriez essayer winston

var logger = new (winston.Logger)({
  transports: [
    new (winston.transports.Console)(),
    new (winston.transports.File)({ filename: 'somefile.log' })
  ]
});

8voto

tjholowaychuk Points 1320

Winston est un peu stupide, enregistrement multi-transport == tee(1), ou simplement suivre le fichier et transférer les données, facile comme bonjour.

4voto

Len Xu Points 71

Vous devriez essayer le cluster http://learnboost.github.com/cluster/ pour Node. Utilisez express pour construire l'application, tandis que le cluster prend en charge le reste des tâches, y compris la journalisation.

  1. app.use(express.logger()) ; // dans vos applications express, ex : app.js
  2. cluster.use(cluster.logger('logs')) ; // dans votre serveur de cluster, ex : server.js

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X