ОК, это может показаться простым вопросом, но я не смог найти ответ отсюда, поэтому я публикую его в надежде, что кто-то мог столкнуться с подобной проблемой.
Мне нужно отслеживать символическую ссылку, которая указывает на файл веб-сервера (точнее, /var/log/lighttpd/error.log
, благодаря Linus G Thiel Я понял, как следовать символическим ссылкам ).Я знаю, что могу настроить fs.fileWatch
для его мониторинга, но я также должен отметить, что файл error.log
также вращался в определенное время, в зависимости от настроек демона журнала.Когда это происходит, fs.fileWatch
перестает работать.Я также знаю, что могу порождать дочерний процесс и запускать
tail -F ./symlink_to_error.log
из узла, чтобы обойти проблему, вызванную ротацией журналов, но я предпочитаю использовать собственные функции узла.Кто-нибудь может пролить некоторый свет на это?
[EDIT]
На самом деле мониторинг реального файла журнала работает без каких-либо проблем, даже когда файл журнала был повернут.Проблема на самом деле вызвана символической ссылкой.Причина, по которой я отслеживаю символическую ссылку, заключается в том, что фактическое имя файла журнала изменяется, когда размер достигает определенного предела./var/log/lighttpd/error.log
приведен только в качестве примера.Я не могу контролировать, как файл журнала переименовывается, но у меня есть crontab, который обновляет символическую ссылку каждую минуту, которая обновляет символическую ссылку.
[EDIT 2/28/2012]
На самом деле я использую следующий метод (через spawn)
tail -F ./symlink_to_error.log
в проекте мониторинга журнала, над которым я работаю, поскольку он работает достаточно надежно, хотя и не так эффективно, как watchFile ().