node.js+express+log4jsでのアクセスログローテーション

謝辞
以下の記事を参考にさせていただきました。感謝です。
*【Node.js】expressでaccess log + log rotate | 湘南社中テクニカルブログ
node.jsとexpressでのアクセスログ
node.js+expressには、express標準のloggerだとログの出力先をファイルにすると、対象のファイルがずっとオープン状態になってしまう、という欠点があります。 (※:もしかしたら私が回避方法を知らないだけかもしれませんが。)
そのため、いい感じのログをファイル出力し、日次でローテーションする、というような運用ができません。
1ファイルに長々とアクセスログが出力されるようでは、運用もままならないので、log4jsを使ってexpressのアクセスログをいい感じにローテーションできるようにしたいと思います。
log4jsを使う
LoggingFrameworkのlog4jsについては、こちらで紹介しています
実際のコードはこんな感じ。※:要リファクタリング app.routerの前で、functionを入れログレベルをinfoで出力させています。
実際にexpressをスタートさせ、ブラウザからアクセスすると以下のようなログが出力されます。
access.log
[2012-10-29 23:06:18.732] [INFO] dateFile - 127.0.0.1 Mon Oct 29 2012 23:06:18 GMT+0900 (東京 (標準時)) GET / 200 - Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1229.94 Safari/537.4
[2012-10-29 23:06:18.968] [INFO] dateFile - 127.0.0.1 Mon Oct 29 2012 23:06:18 GMT+0900 (東京 (標準時)) GET /stylesheets/style.css 200 http://localhost:3000/ Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1229.94 Safari/537.4
Link
Latest post:
- OpenWhiskのScala sbtプロジェクトのgiter8テンプレートを作った
- OpenWhisk+Scalaで作るServerless Architectureとっかかり
- BluemixにPlayframeworkアプリケーションをデプロイする
- sbt、Giter8を統合するってよ
- Scala 2.12.0でSAM型