Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/466.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 尝试使用npm中的“日志”包登录到nodejs上的文件_Javascript_Node.js_Logging - Fatal编程技术网

Javascript 尝试使用npm中的“日志”包登录到nodejs上的文件

Javascript 尝试使用npm中的“日志”包登录到nodejs上的文件,javascript,node.js,logging,Javascript,Node.js,Logging,我不知道该怎么用这个。我遵循了文档中的示例代码: var fs = require('fs') , Log = require('log') , log = new Log('debug', fs.createWriteStream('my.log')); 那又怎么样?如何将实际日志信息发送到文件?我希望通常使用console.log记录的内容转到该文件 编辑:这里是我使用它的上下文,作为一个简单的例子。log.info在工作时间之外工作正常。如下所示,创建了该文件,但其中没有任何内容

我不知道该怎么用这个。我遵循了文档中的示例代码:

var fs = require('fs')
  , Log = require('log')
  , log = new Log('debug', fs.createWriteStream('my.log'));
那又怎么样?如何将实际日志信息发送到文件?我希望通常使用console.log记录的内容转到该文件

编辑:这里是我使用它的上下文,作为一个简单的例子。log.info在工作时间之外工作正常。如下所示,创建了该文件,但其中没有任何内容

var fs = require('fs')
var Log = require('log')
var log = new Log('info', fs.createWriteStream('my.log'));

while(true) {
    log.info("testing");
}

您需要使用fs.appendFileSync方法,以便将内容同步添加到正在创建的日志中

var fs require('fs')
,Log = require('log')
,log = new Log('debug', fs.createWriteStream('test.txt'));

log.debug('test test');
log.debug('test sadasd');
log.debug('test xcvxcv');
log.debug('test ewrewr');
log.debug('test hjgj');
log.debug('test fghfh');
log.debug('test yuiyui');
它们将分别记录到您指定的文件中。该函数表示日志级别,并在您提供的数据前面加上前缀。

包不是为记录Console.log语句而设计的。据我所知,每个日志文件都有日期/时间/日志类型和相关信息。所以普通的console.log中也存储了相同的信息。
您提到的包用于创建任何类型的用户定义日志信息、调试、警告等。

但不使用日志包,是吗?如果您需要它与日志命令同步,请按如下方式在日志中包装fs.appendFileSync。log=newlog'debug',fs.appendFileSync'log.txt'@FernandoGarcia日志构造函数需要一个流,而fs.appendFileSync不返回该流。@robertklep请改用createWriteStream方法。只需调用log.debug方法。我尝试了log.info。。。什么也没写。文件已创建,但未写入任何内容。@erv请在问题中添加一个。这对我有用。好的,给我一点时间。我的脑袋现在正陷入另一个问题中。不要像Node.js中那样使用while true,它会阻止事件循环,阻止任何I/O之类的文件写入。我需要脚本重复并持续运行。当然,在调用记录器之间有一些代码要运行?是的,有。我只是在我的实际代码中尝试了上面的方法,而且效果很好。谢谢你的帮助!
// (taken from readme of package)
log.debug('preparing email');
log.info('sending email');
log.error('failed to send email');