Node.js

【俺メモ】log4jsでファイルを分けてログを出力

More than 3 years have passed since last update.

log4jsをインストール

$ npm install log4js

設定ファイルを別出し

とりあえず、app.jsと同じとこにファイルを作ってや。
んで、ログファイルはlogフォルダの下にできるで。

log4js-setting.json
{
    "appenders": [
        {
            "type": "dateFile", //日付でローテーション
            "category": "request", //リクエスト用のログ
            "filename": "./logs/request", //ファイルのパスとファイル名のヘッダ部分
            "pattern": "yyyyMMdd.log", //日付のフォーマットと拡張子
            "alwaysIncludePattern": "true" //日付跨ぎの強制ローテーションを有効
        },
        {
            "type": "dateFile",
            "category": "error", //エラー用ログファイル
            "filename": "./logs/error",
            "pattern": "yyyyMMdd.log",
            "alwaysIncludePattern": "true"
        }
    ]
}

組み込み

app.js
var log4js = require('log4js'); //log4jsモジュール読み込み

log4js.configure('log4js_setting.json'); //設定ファイル読み込み

var reqlogger = log4js.getLogger('request'); //リクエスト用のロガー取得
var errlogger = log4js.getLogger('error'); //エラー用のロガー取得

reqlogger.info('this is request log'); //リクエストログ出力
errlogger.error('this is error log'); //エラーログ出力

エラー時はエラーオブジェクトを出力する事があるかも知れへんから
Node.js標準モジュールのutil.inspectを使うのがよろし。

実行結果

request20150330.log
[2015-03-30 17:25:41.152] [INFO] request - this is request log
error20150330.log
[2015-03-30 17:25:41.154] [ERROR] error - this is error log

細かいフォーマットはまた別な話