2014-02-19 15 views
0

У меня есть приложение 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 второй раз, и теперь уже существующие журналы исчезли.

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

Есть ли у кого-нибудь ключи для меня?

+0

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

+1

Лучшей практикой является использование вращения файла unix или любой утилиты диспетчера. – itsnikolay

+0

Конечно, мы используем logrotate, поэтому согласны ли вы с тем, что это лишнее и ненужное? Мой инстинкт состоит в том, чтобы просто удалить его из сценария развертывания. – MoDiggity

ответ

1

Удалите его, и использовать журнал вращаться.

0

Что делает сценарий развертывания, хорошо, потому что файлы журналов становятся очень большими, а запись в большой файл является дорогостоящим. Вы должны использовать поворот журнала или какую-либо другую утилиту. Но если вы хотите сохранить его простым, дают уникальные имена файлов путем добавления меток времени

run "mv #{shared_path}/log/#{rails_env}.log #{shared_path}/log/#{rails_env}_old_#{Time.now.Time.now.to_i}" 
run "touch #{shared_path}/log/#{rails_env}.log && chmod -R 777 #{shared_path}/log" 
+0

Мы, безусловно, используем лог-поворот. Поэтому я считаю, что можно просто удалить это из сценария развертывания. – MoDiggity

Смежные вопросы