Node.js console モジュール
consoleモジュールは Node.js の中で最もよく使われる組み込みモジュールの一つで、ブラウザの JavaScript に似たシンプルなデバッグコンソールを提供します。consoleオブジェクト。このモジュールは主に標準出力(stdout)と標準エラー(stderr)に情報を出力するために使われ、開発プロセスにおけるデバッグやログ記録の重要なツールです。
console モジュールの基本用法
1. 通常情報を出力する
console.log()最もよく使われるメソッドで、通常情報を出力するために使用されます:
例
// 出力: Hello, Node.js!
2. エラー情報を出力する
console.error()エラー情報を出力するために使われ、デフォルトで stderr に出力されます:
例
// 出力(赤色): This is an error message
3. 警告情報を出力する
console.warn()警告情報を出力するために使われます:
例
// 出力(黄色): This is a warning message
4. 情報メッセージを出力する
console.info()とconsole.log()同様に、情報メッセージを出力するために使われます:
例
// 出力: This is an informational message
console モジュールの高度な機能
1. フォーマット出力
console モジュールは C 言語の printf() スタイルに似たフォーマット出力をサポートしています:
例
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()コードの実行時間を測定するために使えます:
例
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.log('Name: Alice');
console.log('Age: 25');
console.groupEnd();
4. テーブル出力
console.table()配列やオブジェクトをテーブル形式で出力できます:
例
{ name: 'Alice', age: 25 },
{ name: 'Bob', age: 30 }
];
console.table(users);
5. アサーションテスト
console.assert()簡単なアサーションテストのために使われます:
例
console.assert(x === 10, 'x should be 10');
// アサーションが false のときの出力: Assertion failed: x should be 10
console モジュールの設定オプション
1. カスタム出力ストリーム
カスタムの 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 出力に色を付けることができます:
例
または、サードパーティライブラリを使用します。例えばchalkを使って色の制御を簡素化できます:
例
console.log(chalk.blue('Blue text'));
ベストプラクティス
- 本番環境ログ:本番環境では、専用のログライブラリを使用することをお勧めします。例えば
winston或bunyanconsole の代わりに使用します。 - 使い過ぎを避ける:console は開発・デバッグ段階でのみ使用し、本番コードでは不要な console 文を削除する必要があります。
- パフォーマンスの考慮事項:console.log は同期処理であり、パフォーマンスに敏感なシナリオでは慎重に使用する必要があります。
- エラーハンドリング:エラー情報の記録には 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 モジュールの使用方法を習得すると、開発効率とデバッグ体験を大幅に向上させることができます。