Quelle est la meilleure façon de connecter mon serveur Web express js? Le express.logger () intégré affiche simplement les journaux à l'écran. Puis-je également les enregistrer dans un fichier dans le dossier/log? L'enregistreur actuel enregistre également automatiquement la demande et les réponses. Je dois enregistrer certaines données d'application dans les fichiers journaux. Cela peut-il être fait en utilisant express.logger?
Cordialement, Lalith
Regardez le middleware de connexion qui exprime s'étend. Express.logger () est le même que 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 où vous voulez que la sortie aille. Par défaut, il l'envoie à stdout. Vous pouvez également spécifier le format de journal que vous souhaitez utiliser.
Pour envoyer les journaux express ou de connexion à un fichier, utilisez writeStream de Node. Par exemple, pour envoyer les journaux express à ./ myLogFile.log :
ouvrez le flux vers votre fichier en mode ajout avec:
var logFile = fs.createWriteStream('./myLogFile.log', {flags: 'a'}); //use {flags: 'w'} to open in write mode
puis, dans votre configuration express, utilisez:
app.use(express.logger({stream: logFile}));
devrait également fonctionner pour connect.logger.
Vous devriez essayer winston
var logger = new (winston.Logger)({
transports: [
new (winston.transports.Console)(),
new (winston.transports.File)({ filename: 'somefile.log' })
]
});
winston est un peu idiot, la journalisation multi-transport == tee (1), ou juste suivre le fichier et transférer les données, facile comme bonjour
Utilisez log4js:
var log4js = require('log4js');
log4js.configure({
appenders: [{type: 'console'},
{type: 'file', filename: 'express.log', category: 'dev'}]
});
var logger = log4js.getLogger('dev');
logger.setLevel('DEBUG');
app.use(log4js.connectLogger(logger, {level: log4js.levels.DEBUG}));
Pour la journalisation des requêtes HTTP: https://github.com/expressjs/morgan#write-logs-to-a-file
var express = require('express')
var fs = require('fs')
var morgan = require('morgan')
var app = express()
// create a write stream (in append mode)
var accessLogStream = fs.createWriteStream(__dirname + '/access.log', {flags: 'a'})
// setup the logger
app.use(morgan('combined', {stream: accessLogStream}))
app.get('/', function (req, res) {
res.send('hello, world!')
})
vous devriez essayer le cluster http://learnboost.github.com/cluster/ pour Node. Utilisez express pour créer l'application, tandis que le cluster prend en charge les autres tâches, y compris la journalisation.