log4js-nodeとは、node上で動作するようにしたlog4js。log4js-nodeは、log4jsとは異なるライブラリみたいだ。
準備する
適当にプロジェクトを作り、log4js-nodeをインストールする。
$ mkdir hello-log4js-node
$ cd hello-log4js-node
$ npm init
$ npm install log4js --save
$ touch index.js
Hello log4js
最小のコードを実行してみる。
index.js
var log4js = require('log4js');
var logger = log4js.getLogger();
logger.debug('Hello log4js');
デフォルトでは、標準出力に出力される。
$ node index.js
[2015-01-02 00:27:45.956] [DEBUG] [default] - Hello log4js
ログをファイルに出力する - その1
index.js
var log4js = require('log4js');
// (*1) コンソール出力しない場合は、Appenderをクリアする必要がある。
//log4js.clearAppenders();
log4js.loadAppender('file'); // (*2)
log4js.addAppender(log4js.appenders.file('./debug.log'), 'hello-log4js');
var logger = log4js.getLogger('hello-log4js');
logger.setLevel('WARN'); // (*3)
logger.trace('Hello log4js');
logger.debug('Hello log4js');
logger.info('Hello log4js');
logger.warn('Hello log4js');
logger.error('Hello log4js');
logger.fatal('Hello log4js');
-
file
appenderをLoadし(*2)、出力先のファイルとcategoryhello-log4js
を指定して、Appenderを追加する。 - デフォルトでは、コンソールにも出力するので、ファイルのみに出力したい場合は、
log4js.clearAppenders
する。(*1)
出力結果は、以下のような感じ。ログレベルをWARN
に設定しているので、TRACE/DEBUG/INFOは出力されない。
$ node index.js
[2015-01-02 01:25:21.151] [WARN] hello-log4js - Hello log4js
[2015-01-02 01:25:21.153] [ERROR] hello-log4js - Hello log4js
[2015-01-02 01:25:21.153] [FATAL] hello-log4js - Hello log4js
ログをファイルに出力する - その2
ファイル出力するための設定は、以下のようにも書くことができる。
index.js
var log4js = require('log4js');
log4js.configure({
appenders: [
{ type: 'console' },
{ type: 'file', filename: 'debug.log', category: 'hello-log4js' }
]
});
var logger = log4js.getLogger('hello-log4js');
logger.setLevel('WARN');
logger.trace('Hello log4js');
logger.debug('Hello log4js');
logger.info('Hello log4js');
logger.warn('Hello log4js');
logger.error('Hello log4js');
logger.fatal('Hello log4js');
より実践的な設定
log4js-nodeのREADME
にもリンクされているが、express+log4jsのサンプルアプリケーションがある。
このサンプルが非常に参考になった。