Напишите LogFile с датой запуска сервиса

Я создал сервис с responsephp, который работает и делает некоторые вещи. Он запускается как демон, поэтому весь вывод должен быть зарегистрирован в файле.
Этот файл журнала должен быть назван ‘foo-log-file — $ (date «+ F»)’. Я хочу иметь один файл журнала для каждого дня.

Проблема:

Как уже упоминалось, скрипт работает как сервис, без остановки. Поэтому начальный вызов сценария выполняется только один раз.

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

Таким образом, все, что выводится на консоль из этого скрипта, сохраняется в файл, но файл создается только со строкой даты, когда он был вызван, и не обновляется с новой датой.

Вопрос:

Можно ли решить эту проблему без записи логики в php-скрипт? Могу ли я справиться с этим требованием с Bash?

2

Решение

FYI
Ответ @fedorqui был хорошим подходом, я решил его с помощью cronjob, который копирует файл в другой и очищает остальные.
Вы не можете использовать перемещение, потому что сервис работает, он открыт все время, и вы получаете сообщение об ошибке:

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

Поэтому я проверяю это и очищаю старый с:

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

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]