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