Node的console.log()输出一个对象的信息。如何将其输出到文件?

时间:2012-09-27 10:34:24

标签: node.js

我喜欢console.log(object)以json格式输出object结构的方式。如何让我的应用程序输出与文件相同的内容?

2 个答案:

答案 0 :(得分:3)

正如Golo所说Node中没有任何内置功能,但你可以轻松编写自己的(或使用Winston):)

fs = require('fs');

logToFile = function(fileName, objectToLog) {

  jsonText = JSON.stringify(objectToLog, null, '\t');
  fs.writeFileSync(fileName, jsonText, 'utf8');      

}

sampleData = { name: 'Batman', city: 'Gotham' };
logToFile('log.txt', sampleData);

答案 1 :(得分:2)

Node.js中没有开箱即用的文件记录支持。

基本上,您有两种选择:

  1. 您可以使用操作系统的机制重定向流,将Node.js进程的任何输出重定向到文件。

  2. 使用专用的日志记录库,例如Winston

  3. 我会选择第二个选项,因为它更灵活,你迟早会需要它,至少如果你的项目稍微大一些。