2011-09-10 4 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

무엇 winston를 사용합니다. stdout과 stderr를 나눌 무언가를 원한다면'node index.js 1> filename.log 2> filename.error' 또는 이와 비슷한 것을하십시오. util.log 및 util.debug와 함께 사용하십시오. – tjameson

답변

0

그냥 간단하게 뭔가에 대해

0

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

참고. 이 시나리오에서는 fs.createWriteStream을 사용하는 것이 좋습니다.

저는 이것이 요청을 처리한다고 가정하고 동시에 여러개의 열기/쓰기를 할 수 있습니다.

필요할 때 파일을 한 번 열어서 쓰기가 가능한 스트림을 유지하는 모듈을 작성하는 것이 좋습니다. 이상한 가장자리/경합 조건이 없는지 확인하십시오. `노드하는 index.js >> filename.log` :

+0

그게 내가하고 싶었지만 createWriteStream을 사용하는 방법에 대한 예제를 찾지 못했습니다 ... – Ben

관련 문제