У меня есть приложение rails, которое я унаследовал. В deploy.rb, он выполняет следующие команды:Rails Capistrano Развертывание лучших практик/файлов журнала
run "mv #{shared_path}/log/#{rails_env}.log #{shared_path}/log/#{rails_env}_old"
run "touch #{shared_path}/log/#{rails_env}.log && chmod -R 777 #{shared_path}/log"
Таким образом, вы можете видеть, что движется существующий файл журнала в один под названием _OLD, а затем создать новый.
Это вызывает проблему, когда в некоторых ситуациях первое развертывание завершается с ошибкой. Когда я снова развертываю, он перезаписывает файл _old второй раз, и теперь уже существующие журналы исчезли.
Дело в том, что я не понимаю, почему это делает сценарий развертывания. Я не понимаю, почему это было написано в первую очередь. Я считаю, что все будут в порядке, если мы оставим только файлы журнала во время развертывания.
Есть ли у кого-нибудь ключи для меня?
возможно просто сохранить каждый файл журнала, но чтобы избежать огромных файлов журнала, он создает новый для каждого развертывания. – sissy
Лучшей практикой является использование вращения файла unix или любой утилиты диспетчера. – itsnikolay
Конечно, мы используем logrotate, поэтому согласны ли вы с тем, что это лишнее и ненужное? Мой инстинкт состоит в том, чтобы просто удалить его из сценария развертывания. – MoDiggity