情報アイランド

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

Node.js+winstonで経過時間を測定し、結果をログとして出力する

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

  • log
  • npmlog
  • bunyan
  • winston
  • log4js

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

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

経過時間の測定

winstonモジュールで経過時間を測定し、結果をログとして出力するには測定開始時にlogger.profile関数を呼び出し、測定終了時に再びlogger.profile関数を呼び出します。

logger.profile('xxx');
logger.profile('xxx');

第1引数にラベルを指定します。

測定開始時と測定終了時のラベルは同じでなければなりません。

測定が終了すると測定結果がログとして出力されます。

このログのメッセージはラベルとなり、経過時間がミリ秒単位でdurationMsという名称のメタデータに格納されます。

また、レベルは必ずinfoとなりますので注意してください。

サンプルコード1

winston-profile.js

var winston = require('winston');

var label = 'for-loop';
winston.profile(label);
for (var i = 0; i < 1000000000; i++) {}
winston.profile(label);

使用パッケージ

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

実行結果

C:\work\node>node winston-profile.js
info: for-loop durationMs=1189

関連

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

-Node.js