2013-12-13 6 views
4

나는 node.js로 로그 회전 된 파일을보고 키워드에 대한 각 행을 구문 분석하려고합니다. 문제는 : logrotate 이후 열린 파일 디스크립터 때문에 이전 파일을 계속보고 있습니다.node.js로 회전하는 파일을 보는 howto?

나는이에 새로 온 사람과이 두 가지 질문 :

  1. 는 모든이 아이 노드 라인 이후에 확인하는 것이 좋습니다를하고 있다면 동일 디스크립터를 닫고 다시 파일 '파일 이름을'읽을 수 없습니다?
  2. 이것을 달성하는 가장 좋은 방법은 무엇입니까? 콜백을 피하고 대신 이벤트를 사용하거나 이미 라이브러리가 있습니까?

고마워요!

답변

5

로그 파일을 회전하면 이름이 바뀝니다.

node.js의 fs.watch 함수는 파일이 변경 될 때 사용자에게 알릴 수있는 기능을 제공합니다.

http://www.nodejs.org/api/fs.html#fs_fs_watch_filename_options_listener

Try something like: 

fs.watch('filetowatch', function (event) { 
    if (event === 'rename') { 
    // close the file descriptor you are reading from and re-open. 
    } 
}); 
+0

을의 그 큰 팁! 고마워, 브랜든. – Marco