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
インストールに成功すると、下図のようになる。
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行目でログを出力する。
ファイルには次のように出力される。
調査中なこと
Sails.jsが出力するログ(「sails.log.debug」メソッドなど)をファイルに出力する方法がわからない。。。
0 件のコメント:
コメントを投稿