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');