Express の HTTP サーバログを表示するには、Logger 系のミドルウェアを使用します。
Application オブジェクトの use()
メソッドで、以下のように Logger 系ミドルウェアを設定するだけです。
Express 3 では、Express に logger ミドルウェアが組み込まれていましたが、Express 4 からは、独立したミドルウェア (morgan) をロードする必要があります。
// Express 3 まで(Express オブジェクトからミドルウェア生成可能)
app.use(express.logger());
// Express 4 以降(npm install morgan しておく)
var morgan = require('morgan');
app.use(morgan('combined'));
これにより、HTTP アクセスがあったときに、下記のような感じでターミナルにログ出力されるようになります。
127.0.0.1 - - [Sun, 21 Sep 2014 13:58:13 GMT] "GET / HTTP/1.1" 200 13 “-"
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.122 Safari/537.36"
127.0.0.1 - - [Sun, 21 Sep 2014 13:58:13 GMT] "GET /favicon.ico HTTP/1.1" 404 - “-"
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.122 Safari/537.36"
var express = require('express');
var morgan = require('morgan');
var app = express();
app.use(morgan('combined'));
app.get('/', function (request, response) {
response.send('Hello Express');
});
app.listen(3000);
上記では、組み込み定義のログフォーマット combined
を指定していますが、フォーマットは自由に指定することができます。
app.use(morgan(':method :url :status'));
GET / 304
GET /hoge 404
ターミナルではなく、ファイルにログ出力することもできます。 詳しくは、morgan の Web サイトを参照してください。