我有一个C ++应用程序(在Solaris 10上),它根据时间顺序事务显示日志输出。例如,在建立与数据库服务器的连接之前,它在stdout中打印为:“连接到DB”并在调用connect之后,如果成功,则显示“已连接到DB”,如果失败,则说“无法连接到DB” “ 等等。 现在,当应用程序运行时,输出(stdout)将被重定向到日志文件,如下所示:
appl > app.log
而且,在另一场会议上,看看发生了什么,我认为:
tail -f app.log
tail -f
命令应该在无限循环中运行,暂停一秒钟,然后尝试从app.log读取和复制行并在控制台上显示。这有助于监控app.log中发生的事情
虽然我看到输出的顺序保持不变,但我发现有时候输出会将许多行组合在一起作为一个块然后等待,并且它不是实时的,因为事情正在发生。是因为尾巴-f的睡眠和拉动行为?请帮助我理解为什么它不是实时的。或者有没有其他方式来感受实时?
答案 0 :(得分:0)
尝试以5秒的间隔在此文件上使用watch命令,并查看其行为是否与tail相同。如果实时丢失对文件app.log的写入,则将在尾部输出类似的内容。