如何将事件记录到NodeJS中的文件?

时间:2011-09-10 19:23:31

标签: node.js

我想在每次发生时将服务器请求的详细信息记录到文件中。

这样做的最佳方式是什么?

目前正在使用:

fs.open("./log_"+log_date.getMonth()+"-"+log_date.getDate(), "a+", function(err, fd){
    if(err) {
        sys.puts(err);
    } else {
        var logLineStr = JSON.stringify(log_line);
        fs.write(fd, logLineStr,null,null,null, function(err, written, buffer) {
            fs.close(fd);
        });
    }
}); 

2 个答案:

答案 0 :(得分:0)

http://nodejs.org/docs/v0.4.11/api/fs.html#fs.write

  

请注意,在同一文件上多次使用fs.write而不等待回调是不安全的。对于这种情况,强烈建议使用fs.createWriteStream。

我将假设这是处理请求,并且可能同时发生多次打开/写入。

您最好在需要时编写一个打开文件的模块,并维护一个可写流以确保您没有任何奇怪的边缘情况/竞争条件。

答案 1 :(得分:0)

只需使用winston

即可