情報アイランド

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

Node.js+Bunyanでログを出力したコードの位置に関する情報をログに出力する

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

  • log
  • npmlog
  • bunyan
  • winston
  • log4js

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

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

コード位置

bunyanモジュールでログを出力したコードの位置に関する情報をログに出力するにはbunyan.createLogger関数の第1引数のsrcオプションにtrueを指定します。

var bunyan = require('bunyan');

var logger = bunyan.createLogger({
    name: 'xxx', 
    src: true
});

コードの位置に関する情報はログを表すオブジェクトにsrcプロパティとして含められます。

srcプロパティは更に下のようなプロパティを有します。

  • file・・・コードが保存されているファイルのパスです。
  • line・・・コードの行方向の位置です。
  • func・・・コードが含まれている関数の名称です。

なお、この機能は動作が非常に遅いため開発時以外には使用するべきではありませんので注意してください。

サンプルコード1

bunyan-src.js

var bunyan = require('bunyan');

var logger = bunyan.createLogger({
    name: 'main', 
    src: 'true'
});

logger.info('information.');
logger.info('information 2.');

f();

function f () {
    logger.info('information within a function.');
}

使用パッケージ

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

実行結果

C:\work\node>node bunyan-src.js
{"name":"main","hostname":"mainnote","pid":3300,"level":30,"msg":"information.","time":"2016-08-21T01:16:54.930Z","src":{"file":"C:\\work\\node\\bunyan-src.js","line":8},"v":0}
{"name":"main","hostname":"mainnote","pid":3300,"level":30,"msg":"information 2.","time":"2016-08-21T01:16:54.934Z","src":{"file":"C:\\work\\node\\bunyan-src.js","line":9},"v":0}
{"name":"main","hostname":"mainnote","pid":3300,"level":30,"msg":"information within a function.","time":"2016-08-21T01:16:54.936Z","src":{"file":"C:\\work\\node\\bunyan-src.js","line":14,"func":"f"},"v":0}

関連

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

-Node.js