2014年5月21日水曜日

Sails.jsでのログ出力

Sails.jsでログをファイルに出力する方法を記載する。
Sails.jsのログでは、ログはコンソールに出力するだけで、ファイルには出力されない。
ファイルに出力するために、ここではlog4jsを使用する。

動作環境
・Windows7 Ultimate Service Pack 1
・Node.js 0.10.28
・Sail.js 0.9.16
・log4js 0.6.14

log4jsのインストール

log4jsは、npmでインストールする。コマンドプロンプトより、下記のコマンドを入力する。
コマンドを入力するディレクトリは、Sails.jsアプリケーションのプロジェクト直下とする。

 % npm install log4js

インストールに成功すると、下図のようになる。

img0012

log4jsの設定

ログの出力ファイルパスなどを設定する。下記のファイルを作成し、ファイルにlog4jsの出力方法を設定する。

(プロジェクト直下)\config\log4js.js

var log4js = require('log4js');

log4js.configure({
appenders: [
{
'type': 'file', // 出力先
'category': 'app', // カテゴリ
'filename': 'log/app.log', // ファイルパス
}
]
});




ファイルパスはプロジェクト直下のディレクトリを起点として設定する。設定したパスのファイルを格納するディレクトリは自動で生成されないため、アプリケーション実行前にあらかじめ生成しておくこと。


 


ログ出力メソッドの呼び出し


適当なコントローラを作成し、ログの出力メソッドを呼び出す。
本稿では「Sample」コントローラと、「index」アクションを作成した。


/**
* SampleController
*/

var log4js = require('log4js');
var logger = log4js.getLogger('app');

module.exports = {


/**
* Action blueprints:
* `/sample/index`
* `/sample`
*/
index: function (req, res) {

logger.debug("log debug");
logger.info("log info");
logger.error("log error");

// Send a JSON response
return res.json({
hello: 'world'
});
},




/**
* Overrides for the settings in `config/controllers.js`
* (specific to SampleController)
*/
_config: {}


};

5行目でlog4jsの読み込み、6行目でログ出力用のオブジェクトを取得する。
「index」アクションが実施されると、18行目から20行目でログを出力する。


ファイルには次のように出力される。


img0013




 


調査中なこと


Sails.jsが出力するログ(「sails.log.debug」メソッドなど)をファイルに出力する方法がわからない。。。

0 件のコメント:

コメントを投稿