67

Express js Web サーバーをログに記録する最良の方法は何ですか? 組み込みの express.logger() は、ログを画面に表示するだけです。/log フォルダー内のファイルにログを記録することはできますか? また、現在のロガーはリクエストとレスポンスを自動的に記録します。一部のアプリケーション データをログ ファイルに記録する必要があります。これは、express.logger を使用して実行できますか?

よろしく、ラリス

4

7 に答える 7

73

高速または接続ログをファイルに送信するには、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 でも機能するはずです。

于 2012-01-26T12:36:39.820 に答える
49

Express が拡張する接続ミドルウェアを見てください。express.logger() は connect.logger() と同じです。

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

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

ロガーには、出力先を設定できるストリーム オプションがあります。デフォルトでは、それを stdout に送信します。また、使用するログ形式を指定することもできます。

于 2011-03-31T17:21:35.590 に答える
20

ウィンストンを試してみてください

var logger = new (winston.Logger)({
  transports: [
    new (winston.transports.Console)(),
    new (winston.transports.File)({ filename: 'somefile.log' })
  ]
});
于 2011-03-30T22:43:05.967 に答える
8

winston はちょっとばかげている、マルチトランスポート ロギング == tee(1)、または単にファイルを末尾にしてデータを転送するだけで、パイのように簡単です

于 2011-09-27T15:11:59.067 に答える
8

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}));
于 2014-03-24T22:03:56.660 に答える
6

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!')
})
于 2015-04-26T12:49:57.450 に答える
4

ノードのクラスターhttp://learnboost.github.com/cluster/を試す必要があります。Express を使用してアプリをビルドし、クラスターがロギングなどの残りのタスクを引き継ぎます。

  1. app.use(express.logger()); // Express アプリで、例: app.js
  2. cluster.use(cluster.logger('logs')) ; // クラスター サーバーで、例: server.js
于 2011-10-17T04:10:34.183 に答える