Express loggerの使い方

Node.jsとExpress3環境のログのコンソール出力とファイル管理

コンソール出力

Express3.10.5でログを出力する。

使い方

Express3には標準でloggerミドルウェアが含まれているので、それを利用する。

app.use(express.logger());

上の一行を追加するとコンソールに出力される。

C:\Express-manifest>node logger.js
Express server started
127.0.0.1 - - [Sat, 14 Jun 2014 05:10:46 GMT] "GET / HTTP/1.1" 200 21 "-" "Mozilla/5.0 (Windows NT 6.3; WOW64; rv:29.0) Gecko/20100101
Firefox/29.0"

ログフォーマットを指定

出力した項目をフォーマットとして指定することが可能。

app.use(express.logger({
  format: ':remote-addr :response-time :url :status'
}));

上のコードはフォーマットとして、

  • ipアドレス
  • レスポンスタイム
  • URL
  • ステータスコード

を出力するように指定した例で、コンソール出力は以下のようになった。

C:\Express-manifest>node logger.js
Express server started
127.0.0.1 85.713 / 304

ログファイルを生成

アクセスログをコンソールに出力する方法は、Express3のloggerミドルウェアを利用すれば、簡単に設定できることが分かった。ログをファイルに出力する最初の手順として、fsモジュールをrequireする。

var fs = require('fs');

ファイルに出力するため、ファイルシステムにアクセスするモジュールが必要になる。次にファイルシステムにアクセスする設定を書く

var logs = fs.createWriteStream('./access.log', {flags: 'w'});

そして、loggerにstreamという引数でlogsを設定する。

app.use(express.logger({
  format: ':remote-addr :response-time :url :status',
  stream: logs
}));

ここまでの設定で、access.logというログファイルが作成され、随時ログが追記されるようになる。

Webエンジニアブログにコメント

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

Express loggerの使い方の記事にコメントを投稿