node::console.logの実装
ブクマでも指摘がありますが、nodeのconsole.log()にはutil.format()が使われています。
このuti.format()はsprintf(3)風の機能も持っていますが、それ以上にオブジェクトのダンプ機能が嬉しいのではないかと思います。
ところで、consoleなどのnodeの組み込みオブジェクトの一部はJavaScriptで記述されているので簡単に読むことができます。
たとえばconsoleやutilの実装は以下にあります。
これによると、細かいオプションを渡してダンプしたいときは、util.inspect()を直接呼べばいいことがわかります。
#!/usr/bin/env node "use strict"; var util = require('util'); var x = { first: { second: { third: { forth: 42 }}}}; console.log(x); // -> { first: { second: { third: [Object] } } } console.log("%s", util.inspect(x, true, 10)); // -> { first: { second: { third: { forth: 42 } } } }
nodeでコードを書いているときは、JSON.stringify()よりもこちらを使ったほうが正確な情報を得られます。