0

我有一个生产中的 Rails 3 应用程序,生产日志很大。我可以安全地删除它并允许 Rails 生成另一个吗?我是否必须重新启动 Rails 应用程序或重新部署?我必须触摸 production.log 吗?

这个东西有300mb大小,我想杀了它。

4

3 回答 3

1

将无论何时 gem 添加到您的 gem 文件中

gem "whenever", "~> 0.7.2", require: false

并创建一个随时任务来执行此操作

例如,在您的 Rails 应用程序上运行wheneverizecommanad,它将在您的配置目录中为您创建一个 schedule.rb 文件,您可以向其中添加一个任务,例如

every 1.day, :at => '4:30 am' do
  rake "log:clear"
end

如果您使用 capistrano 进行部署,请将其添加到您的 deploy.rb

set :whenever_command, "bundle exec whenever"

这将随时为您自动设置。

于 2013-02-07T21:33:44.600 回答
0

您可以随时删除日志,而不必担心应用程序。理想情况下,您应该轮换这些日志以防止它们变得如此之大。您可以使用 logrotate 执行此操作。对于 ubuntu,它会是这样的(取自这个问题):

    /path/to/rails.example.com/tmp/log/*.log {
        weekly
        missingok
        rotate 52
        compress
        delaycompress
        notifempty
        create 640 root adm
        copytruncate
    }

是 logrotate 手册页以获取更多信息,尽管说明有些不言自明。

于 2013-02-08T19:01:42.550 回答
0
/home/deploy/appname/current/log/*.log {
  daily
  missingok
  rotate 7
  compress
  delaycompress
  notifempty
  copytruncate
}

将 logrotate 与上述配置一起使用,它运行良好。

于 2013-02-08T22:37:38.837 回答