如何将 console.log 写入文件

And*_*eas 4 javascript node.js

现在我使用以下方法显示信息:

console.log (kraken.id, markets)
Run Code Online (Sandbox Code Playgroud)

但是,我想将进入控制台的所有信息写入文件。如何通过完成以下代码来做到这一点?

'use strict';
var ccxt = require('ccxt');

(async () => {
    let kraken = new ccxt.kraken ()
    let markets = await kraken.load_markets ()
    //console.log (kraken.id, markets)


//How to write above console.log to file?
const fs = require('fs');
fs.writeFile("/Users/Andreas/Desktop/NODE/myproject/files/test.txt", "allinfoAsstring", function(err) {
    if(err) {
        return console.log(err);
    }

    console.log("The file was saved!");
}); 

}) ()
Run Code Online (Sandbox Code Playgroud)

小智 13

感谢您提供多样化的解决方案。对我来说最简单的方法是

node app.js > app.log 2>&1

这会将 stdout 重定向到名为 app.log 的文件,并将 stderr 重定向到 stdout。

所以我所有的console.log都会app.log


小智 11

您可以尝试从变量中创建一个对象并将它们格式化为 JSON 字符串。

/* ... */
const obj = {kraken, markets}

const fs = require('fs');
fs.writeFile("/Users/Andreas/Desktop/NODE/myproject/files/test.txt", JSON.stringify(obj), function(err) {
    if(err) {
        return console.log(err);
    }

    console.log("The file was saved!");
}); 
Run Code Online (Sandbox Code Playgroud)

稍后,您可以通过运行从文件中检索值

fs.readFile('/Users/Andreas/Desktop/NODE/myproject/files/test.txt', 'utf8', function(err, data) {
	const obj = JSON.parse(data)

	console.log("The data from the file is: " + obj)
})
Run Code Online (Sandbox Code Playgroud)