在运行服务时写入LogFile和日期

时间:2015-11-26 10:44:49

标签: php linux bash logging reactphp

我已经用reactphp创建了一个服务,它可以运行并执行一些操作。它作为守护进程启动,因此所有输出都应记录在文件中。 此日志文件应命名为' foo-log-file - $(日期" + F")' 。我希望每天都有一个日志文件。

问题:

如上所述,脚本作为服务运行,不会停止。因此,脚本的起始调用只执行一次。

php my_script.php >> /var/log/bar/log-file--$(date "+%F") 2>&1

因此,从此脚本打印到控制台的所有内容都将保存到文件中,但该文件仅在调用时使用日期字符串创建,并且不会使用新日期进行更新。

问题:

如果不在php脚本中编写日志逻辑,是否可以解决这个问题?我能用bash处理这个要求吗?

1 个答案:

答案 0 :(得分:1)

FYI @fedorqui的答案是一个很好的方法,我用一个cronjob解决了它,它将文件复制到另一个文件并清空其余部分。 你不能使用move,导致通过运行服务,它一直打开,你得到错误:

cannot move 'foo.log' to 'bar.log': Text file busy

所以我用它来清除旧的:

cp foo.log foo.log.$(date +"%F");
cp /dev/null file.log;