2011-09-10 8 views
0

サーバー要求に関する詳細が発生するたびにファイルに記録したいと思います。NodeJSのファイルにイベントを記録する方法は?

これを行う最適な方法は何でしょうか?現在使用して

:コールバックを待たずに、同じファイルに複数回fs.write使用して安全ではないことを

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); 
     }); 
    } 
}); 
+0

「node index.js >> filename.log'」とは何か簡単です。もしあなたがstdoutとstderrを分割することを望むなら、 'node index.js 1> filename.log 2> filename.error'かそのようなことをします。 util.logとutil.debugと組み合わせて使用​​してください。 – tjameson

答えて

0

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

注意。このシナリオでは、fs.createWriteStreamを強くお勧めします。

私はこれがリクエストを処理していると仮定し、複数のオープン/ライトを同時に行うことができます。

奇妙なエッジケース/競合状態が発生しないように、書き込み可能なストリームを保持し、必要なときにファイルを開くモジュールを作成する方がよいでしょう。

+0

これは私がやりたいことですが、createWriteStreamの使い方の例は見つかりませんでした。 – Ben

関連する問題