Express4 + log4jsでロギング

Express4 + log4jsでロギング

兎にも角にも「ログ」は大事。

Express4 + log4jsでロギングをつくっていく。
まずはlog4jsモジュールのインストール。

用意するログの種類は以下の通りとする。

category 用途
access アクセスログ
error エラーログ
system 上記二つに当てはまらないもの

各ログの設定を作るのだが、例によって環境によって動作を変えたいと思う。
例えば、本番環境ではデバッグ用のログは吐き出す必要はない。

環境ごとに設定をつくる方法はExpress4で環境ごとの設定をつくるに書いたので参考に。

appendars要素にログの種類分の設定をしている。

要素 内容
category 種類を特定できる文字列
type console(コンソール) file(ファイル) dateFile(rotate付ファイル)
filename 出力先ファイル名
pattern dateFileの場合のファイル末尾のパターン
backups 過去分としてのこしておくログファイル数

appendars要素に {“type”: “console”} も設定しておくと、ファイル書き出しと同時にコンソールにも表示してくれて便利。

levels要素は対象のログ種類で、どのレベル以上のログを書き出し可能かを制御できる。

レベル 内容
ALL 全てのログが書き出される
DEBUG DEBUG以上のログが書き出される
INFO INFO以上のログが書き出される
WARN WARN以上のログが書き出される
ERROR ERROR以上のログが書き出される

設定を読み込んでロガーを初期化するコードを毎回書くのが面倒なので、モジュール化しておく。

最後にExpressのデフォルトロガーをlog4jsに変更する。

ここまで出来ればあとは使うだけ。

以上。

qiitaにも投稿しています

Pocket

Posted in Node.js.

Express4で環境ごとの設定をつくる

Express4で環境ごとの設定をつくる

基礎知識

Express4では環境変数「NODE_ENV」によって環境を定義することができる。
例えば、開発環境(development)、ステージ環境(stage)、本番環境(production)のような設定。
NODE_ENVの指定は起動時に指定したりする。
指定しなければdevelopmentになる。

プログラム中に今どの環境向けに動作しているのかを知りたい場合は以下のようなコード書こう。

環境ごとに処理したい場合、Express3ではapp.configureメソッドを使えていたが、Express4でこのメソッドは廃止されていることに注意する。

環境ごとの設定をつくる

本題。

「環境ごとにデータベースの接続先が違うから各環境ごとに設定ファイルを用意して、データベース接続する際は裏側で勝手に設定ファイルよんで接続して欲しい。」ということは良くある。

configモジュールを使う。

configディレクトリを作成して、default.jsonをつくれと書いてあるので従う。

例えば、開発環境向け専用の設定ファイルを作成する場合は「config/NODE_ENVに設定した値.json」を用意しておけば、そちらに書かれている内容で上書きされるみたい。

プログラムから設定を読み込むには以下のようにする。

これでソースコード上からは今どの環境向けに動作しているかを気にしなくてよくなった。

qiitaにも投稿しています

Pocket

Posted in Node.js.