loginexpression式js到输出文件?

login我的express js web服务器的最佳方式是什么? 内置的express.logger()只是在屏幕上显示日志。 我也可以将它们logging到/ log文件夹中的文件中吗? 当前logging器也会自动logging请求和响应。 我需要将一些应用程序数据logging到日志文件中。 这可以使用express.logger来完成吗?

问候,拉利思

看看expression延伸的连接中间件。 express.logger()与connect.logger()相同:

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

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

logging器有一个stream选项,可以在需要输出的地方设置。 默认情况下,它将它发送到标准输出。 你也可以指定你想要使用的日志格式。

要发送快递或连接日志到一个文件使用节点的writeStream 。 例如,要将快速日志发送到./myLogFile.log

以附加模式打开stream到您的文件:

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

那么,在你的快速configuration使用:

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

也应该为connect.logger工作。

你应该尝试温斯顿

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

温斯顿是有点傻,多运输伐木==三通(1),或只是尾部文件和传输数据,像馅饼一样容易

使用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})); 

你应该尝试集群http://learnboost.github.com/cluster/的节点。; 使用express来构build应用程序,而集群接pipe包括日志logging在内的其余任务。

  1. app.use(express.logger()); //在您的快速应用程序中,例如:app.js
  2. cluster.use(cluster.logger('logs')); //在您的群集服务器中,例如:server.js

对于HTTP请求日志logging: 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!') })