情報アイランド

「情報を制する者は世界を制す」をモットーに様々な情報を提供することを目指すブログです。現在はプログラミング関連情報が多めですが、投資関連情報も取り扱っていきたいです。

Node.js+Bunyanでロガー固有の項目をログに出力する

ログを出力するには下のようなモジュールを利用する方法があります。

  • log
  • npmlog
  • bunyan
  • winston
  • log4js

この記事ではbunyanモジュールを利用する方法を取り上げます。

bunyanモジュールの基本的な使用方法に関しては下の記事を参照してください。

ロガー固有の項目

bunyanモジュールでロガー固有の項目をログに出力するにはbunyan.createLogger関数の第1引数のオプションに項目を指定します。

ただし、オプションと同じ名称の項目を指定することはできませんので注意してください。

var bunyan = require('bunyan');

var logger = bunyan.createLogger({
    name: 'xxx', 
    foo: 'yyy', 
    bar: 'zzz'
});

ログの出力時にbunyanモジュールが自動的にログを表すオブジェクトに付加するプロパティと同じ名称の項目を指定した場合には項目の方がログに出力されます。ただし、msgプロパティとvプロパティを除きます。

また、ログの出力時に項目と同じ名称のメタデータが指定された場合にはメタデータの方がログに出力されます。

サンプルコード1

bunyan-logger.js

var bunyan = require('bunyan');

var logger = bunyan.createLogger({
    name: 'main', 
    foo: 100, 
    bar: 200, 
    hostname: 'host', 
    msg: '', 
    v: ''
});

logger.info('information.');
logger.info({ foo: 999 }, 'information 2.');

使用パッケージ

  • Bunyan
    npm install bunyanでインストールします。

実行結果

C:\work\node>node bunyan-logger.js
{"name":"main","foo":100,"bar":200,"hostname":"host","msg":"information.","v":0,"pid":2364,"level":30,"time":"2016-08-21T00:54:09.367Z"}
{"name":"main","foo":999,"bar":200,"hostname":"host","msg":"information 2.","v":0,"pid":2364,"level":30,"time":"2016-08-21T00:54:09.367Z"}

関連

pizyumi
プログラミング歴19年のベテランプログラマー。業務システム全般何でも作れます。現在はWeb系の技術を勉強中。
スポンサーリンク

-Node.js