好的,这似乎是一个简单的问题,但我无法从这里找到答案,所以我发布它,希望有人可能遇到过类似的问题。
我需要监视一个指向 Web 服务器文件的符号链接(/var/log/lighttpd/error.log
更具体地说,感谢Linus G Thiel ,我想出了如何遵循符号链接)。我知道我可以设置fs.fileWatch
为监视它,但我还应该指出,error.log
文件也在特定时间轮换,具体取决于日志守护程序设置。发生这种情况时,fs.fileWatch
停止工作。我也知道我可以生成一个子进程并运行
tail -F ./symlink_to_error.log
from node 来解决日志轮换带来的问题,但我更喜欢使用原生 node 函数。任何人都可以对此有所了解吗?
[ 编辑 ]
即使日志文件被轮换,实际上监控实际日志文件也没有任何问题。该问题实际上是由符号链接引起的。我监视符号链接的原因是因为当大小达到一定限制时实际的日志文件名会发生变化。/var/log/lighttpd/error.log
仅作为示例给出。我无法控制日志文件的重命名方式,但我确实有一个 crontab,它每分钟更新一次符号链接,更新符号链接。
[ 编辑 2/28/2012 ]
实际上我正在使用以下方法(通过spawn)
tail -F ./symlink_to_error.log
在我正在处理的日志监控项目中,因为它的工作非常可靠,尽管它不如 watchFile() 高效。