Node.js + Express + log4js
Node.js + Express + log4js-node でログ出力を行います。
検証環境
- Node.js 0.8.12
- Express 3.0.0rc5
- log4js 0.5.3
モジュールの読み込み
var express = require('express'); var app = express(); var log4js = require('log4js');
log4jsの設定
app.configure(function(){ log4js.configure({ 'appenders': [ { 'type': 'console' }, // console に出力 { 'type': 'file', 'filename': 'path/to/logfile', // 1024 * 1024 byte = 1MB 'maxLogSize': 1024 * 1024, 'backups': 5, // stdoutへの出力も拾う 'category': [ 'project-name', 'console' ], }, ], 'replaceConsole': true // stdoutへの出力も拾う }); var logger = log4js.getLogger('project-name'); app.use(log4js.connectLogger(logger, { 'level': log4js.levels.DEBUG, // アクセスログを出力する際に無視する拡張子 'nolog': [ '\\css', '\\.js', '\\.gif' ], // アクセスログのフォーマット(以下はデフォルト出力) 'format': ':remote-addr - - ":method :url HTTP/:http-version" :status :content-length ":referrer" ":user-agent"' })); app.use(app.router); });
出力
以降、別ファイル(routeファイル等)でも以下のコードで指定したログファイルに出力できます。
var logger = log4js.getLogger('project-name'); logger.trace('trace log'); logger.debug('debug log'); logger.info('information log'); logger.warn('warning log'); logger.error('error log'); logger.fatal('fatal error log');
参考
Node.js v0.8 APIリファレンス http://nodejs.jp/nodejs.org_ja/docs/v0.8/api/
Express APIリファレンス http://expressjs.com/api.html
log4js-node GitHub https://github.com/nomiddlename/log4js-node