节点类控制台的方法日志未连接到该文件

Method Log of the Node class Console is not wirting to the file

本文关键字:连接 文件 日志 控制台 方法 节点      更新时间:2023-09-26

我在关注那篇文章https://nodejs.org/api/console.html如何将输出写入文件

var output = fs.createWriteStream('./stdout.log');
var errorOutput = fs.createWriteStream('./stderr.log');
var logger = new Console(output, errorOutput);
logger.log('log my stuff to the file');

但我看不到有任何内容被写入文件。为什么?我只能看到0字节的空文件。

我刚刚在我的代码中发现了一些神秘之处。当我注释代码bwlow时,记录器正在工作,但当我取消注释该代码时,记录器不工作:

var exec = require('child_process').exec, child;
child = exec(cmd,
             function (error, stdout, stderr) { 
                 console.log(cmd);
                 if (error !== null) {
                      console.log(error);
                 }
             })

我的代码没有任何问题/错误,一切正常。但当我打电话给child = exec... 时,loggin不起作用

控制台上的文档显示:

全局控制台是一个特殊的控制台,其输出发送到process.stdout和process.stderr

所以在我的情况下,当我运行child = exec...时,它正在运行另一个项目,所以它可能正在破坏Console.Log()。。。有什么想法吗?

完整的脚本应该是这样的:

var Console = require('console').Console,
    fs = require('fs'),
    output = fs.createWriteStream('./stdout.log'),
    errorOutput = fs.createWriteStream('./stderr.log'),
    logger = new Console(output, errorOutput);
logger.log('log my stuff to the file');