Node.js console モジュール

Node.js 組み込みモジュール


consoleモジュールは Node.js の中で最もよく使われる組み込みモジュールの一つで、ブラウザの JavaScript に似たシンプルなデバッグコンソールを提供します。consoleオブジェクト。このモジュールは主に標準出力(stdout)と標準エラー(stderr)に情報を出力するために使われ、開発プロセスにおけるデバッグやログ記録の重要なツールです。


console モジュールの基本用法

1. 通常情報を出力する

console.log()最もよく使われるメソッドで、通常情報を出力するために使用されます:

例

console.log('Hello, Node.js!');
// 出力: Hello, Node.js!

2. エラー情報を出力する

console.error()エラー情報を出力するために使われ、デフォルトで stderr に出力されます:

例

console.error('This is an error message');
// 出力(赤色): This is an error message

3. 警告情報を出力する

console.warn()警告情報を出力するために使われます:

例

console.warn('This is a warning message');
// 出力(黄色): This is a warning message

4. 情報メッセージを出力する

console.info()とconsole.log()同様に、情報メッセージを出力するために使われます:

例

console.info('This is an informational message');
// 出力: This is an informational message

console モジュールの高度な機能

1. フォーマット出力

console モジュールは C 言語の printf() スタイルに似たフォーマット出力をサポートしています:

例

const name = 'Alice';
const age = 25;
console.log('Name: %s, Age: %d', name, age);
// 出力: Name: Alice, Age: 25

サポートされているフォーマット指定子:

  • %s- 文字列
  • %d- 数値(整数または浮動小数点数)
  • %i- 整数
  • %f- 浮動小数点数
  • %o- オブジェクト
  • %j - JSON

2. タイマー機能

console.time()とconsole.timeEnd()コードの実行時間を測定するために使えます:

例

console.time('array test');
const arr = [];
for (let i = 0; i < 1000000; i++) {
  arr.push(i);
}
console.timeEnd('array test');
// 出力: array test: 12.345ms

3. グループ出力

console.group()とconsole.groupEnd()折りたたみ可能なメッセージグループを作成できます:

例

console.group('User Details');
console.log('Name: Alice');
console.log('Age: 25');
console.groupEnd();

4. テーブル出力

console.table()配列やオブジェクトをテーブル形式で出力できます:

例

const users = [
  { name: 'Alice', age: 25 },
  { name: 'Bob', age: 30 }
];
console.table(users);

5. アサーションテスト

console.assert()簡単なアサーションテストのために使われます:

例

const x = 5;
console.assert(x === 10, 'x should be 10');
// アサーションが false のときの出力: Assertion failed: x should be 10

console モジュールの設定オプション

1. カスタム出力ストリーム

カスタムの Console インスタンスを作成し、異なる出力ストリームを指定できます:

例

const { Console } = require('console');
const fs = require('fs');

const output = fs.createWriteStream('./stdout.log');
const errorOutput = fs.createWriteStream('./stderr.log');

const logger = new Console(output, errorOutput);

logger.log('This will be written to stdout.log');
logger.error('This will be written to stderr.log');

2. 色とスタイル

ANSI カラーをサポートするターミナルでは、console 出力に色を付けることができます:

例

console.log('\x1b[36m%s\x1b[0m', 'Cyan colored text');

または、サードパーティライブラリを使用します。例えばchalkを使って色の制御を簡素化できます:

例

const chalk = require('chalk');
console.log(chalk.blue('Blue text'));

ベストプラクティス

  1. 本番環境ログ:本番環境では、専用のログライブラリを使用することをお勧めします。例えばwinston 或 bunyanconsole の代わりに使用します。
  2. 使い過ぎを避ける:console は開発・デバッグ段階でのみ使用し、本番コードでは不要な console 文を削除する必要があります。
  3. パフォーマンスの考慮事項:console.log は同期処理であり、パフォーマンスに敏感なシナリオでは慎重に使用する必要があります。
  4. エラーハンドリング:エラー情報の記録には console.error を使用すると、区別やフィルタリングが容易になります。

メソッドとプロパティの一覧

以下は Node.js のconsoleモジュールの主要なメソッドとプロパティです:

メソッド/プロパティ 説明 出力ストリーム 導入バージョン
console.log([data][, ...args]) stdout に出力し、改行を含みます stdout 0.1.100
console.error([data][, ...args]) stderr に出力し、改行を含みます stderr 0.1.100
console.warn([data][, ...args]) console.error のエイリアス stderr 0.1.100
console.info([data][, ...args]) console.log のエイリアス stdout 0.1.100
console.debug([data][, ...args]) デバッグ情報を stdout に出力します stdout 8.0.0
console.dir(obj[, options]) オブジェクトに util.inspect() を使用し、結果を出力します stdout 0.1.100
console.time([label]) タイマーを開始します - 0.1.100
console.timeEnd([label]) タイマーを停止し、結果を出力します stdout 0.1.100
console.timeLog([label][, ...data]) 現在のタイマー値を出力します stdout 10.7.0
console.trace([message][, ...args]) スタックトレースを stderr に出力します stderr 0.1.100
console.assert(value[, message][, ...args]) value が falsy の場合、アサーションが失敗し message を出力します stderr 0.1.100
console.clear() コンソールのクリアを試みます - 8.3.0
console.count([label]) label の呼び出し回数をカウントします stdout 8.3.0
console.countReset([label]) カウンターをリセットします stdout 8.3.0
console.group([...label]) 後続の出力をインデントします stdout 8.5.0
console.groupEnd() 現在のインデントグループを終了します stdout 8.5.0
console.table(tabularData[, properties]) データをテーブル形式で出力します stdout 10.0.0
console.dirxml(...data) サポートされていれば、console.log を呼び出して XML/HTML ツリーを出力します stdout -

特別なプロパティ

プロパティ 説明
console.stdout 標準出力を指す書き込み可能ストリーム
console.stderr 標準エラー出力を指す書き込み可能ストリーム

Node.js の console モジュールは、シンプルながら強力なデバッグツールであり、基本的なログ記録からタイマーやテーブル出力などの高度な機能まで、さまざまなメソッドを提供します。console モジュールの使用方法を習得すると、開発効率とデバッグ体験を大幅に向上させることができます。

Node.js 組み込みモジュール