🍎

Node.js + Expressの環境にロギング機能を追加してみる。

2022/02/11に公開

Node.jsとExpressで構築したWebサーバーにロギング出力の設定を追加する。

今回は、Node.jsとExpressで構築したWebサーバーにロギング出力設定を追加してみたので
その設定の流れを共有してみたいと思います。

準備

  1. log4jsをインストールする。
  2. ログ出力用の設定ファイルを作成する。
  3. Webサーバーを起動させるファイルに設定を追加する。
  4. ログを出力したい箇所にlogger.debug()メソッドを突っ込む。

ソースコード

今回のソースコードは下記リポジトリを利用しました。

https://github.com/mashharuki/iroha

1.log4jsのインストール

まずは、下記コマンドでlog4jsをインストールします。
npm install log4js

2. ログ出力用の設定ファイルの作成

次にログ出力用の設定ファイルを用意します。参考サイトなどを参考に次のように設定しました。

{
    "appenders": { 
          "server": { 
                "type": "file", 
                "filename": "./server/log/server.log" 
          } 
    },
    "categories": { 
          "default": { 
                "appenders": ["server"], 
                "level": "debug" 
          } 
    }
}

3. Webサーバーを起動させるファイルに設定を追加

ここまでできたらいよいよWebサーバー用のファイルにログを使用するための設定を追加していきます。
筆者の環境の場合は、server.jsに次のように追加しました。

// Webサーバーの起動
const express = require('express');
var log4js = require('log4js');

// log4jsの設定
log4js.configure('./server/log/log4js_setting.json');
const logger = log4js.getLogger("server");

4. ログを出力したい箇所にlogger.debug()メソッドを突っ込む

3.まで完了したらあとは、ログを出力したい箇所にlogger.debug()メソッドを突っ込みます。

logger.debug('起動しました', `https://localhost:${portNo}`)

うまくできていれば、server.logというファイル名が作成され、次のように出力されているはずです。

[2022-02-11T13:49:44.393] [DEBUG] server - 起動しました https://localhost:3001

最後に

今回は、Node.jsとExpressで構築したWebサーバーにロギング機能を追加してみました。
思ったよりも簡単に設定ができたのでこの記事が参考になれば幸いです。
よろしくお願いいたします。

参考にさせていただいたサイト

https://www.yoheim.net/blog.php?q=20130903

https://www.npmjs.com/package/log4js

今回使用したiroha_front_appについては、こちらの記事で紹介させていただいているのであわせて
確認していただければ幸いです。

https://qiita.com/mashharuki/items/21bb3c49459e5bd8338d

Discussion