Express js Web サーバーをログに記録する最良の方法は何ですか? 組み込みの express.logger() は、ログを画面に表示するだけです。/log フォルダー内のファイルにログを記録することはできますか? また、現在のロガーはリクエストとレスポンスを自動的に記録します。一部のアプリケーション データをログ ファイルに記録する必要があります。これは、express.logger を使用して実行できますか?
よろしく、ラリス
高速または接続ログをファイルに送信するには、Node のwriteStreamを使用します。たとえば、高速ログを./myLogFile.logに送信するには:
次のコマンドを使用して、追加モードでファイルへのストリームを開きます。
var logFile = fs.createWriteStream('./myLogFile.log', {flags: 'a'}); //use {flags: 'w'} to open in write mode
次に、エクスプレス構成で次を使用します。
app.use(express.logger({stream: logFile}));
connect.logger でも機能するはずです。
Express が拡張する接続ミドルウェアを見てください。express.logger() は connect.logger() と同じです。
http://expressjs.com/api.html#middleware
http://www.senchalabs.org/connect/logger.html
ロガーには、出力先を設定できるストリーム オプションがあります。デフォルトでは、それを stdout に送信します。また、使用するログ形式を指定することもできます。
ウィンストンを試してみてください
var logger = new (winston.Logger)({
transports: [
new (winston.transports.Console)(),
new (winston.transports.File)({ filename: 'somefile.log' })
]
});
winston はちょっとばかげている、マルチトランスポート ロギング == tee(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 リクエスト ロギングの場合: 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!')
})
ノードのクラスターhttp://learnboost.github.com/cluster/を試す必要があります。Express を使用してアプリをビルドし、クラスターがロギングなどの残りのタスクを引き継ぎます。