Ruby on rails日志文件太大
我偶然发现我的rails3.1日志文件非常大,大约21mb。 就大小而言,这是正常的吗? 日志文件在生产环境中的含义是什么? 此外,我可以摆脱日志吗?谢谢
你可以删除文件!
如果不存在,Rails将创建一个新日志。
显然保存/备份文件,如果它很重要,但通常不是。
如果要将其保留在同一驱动器上但仍可节省空间,也可以压缩备份文件(然后删除源文件)。
要自动旋转日志文件(最佳长期解决方案),请使用日志旋转,如下所述:
Ruby on Rails生产日志轮换
然后你可以设置并忘记它!
要实际更改记录的内容,请参阅:
http://dennisreimann.de/blog/silencing-the-rails-log-on-a-per-action-basis/
Rails应用程序的log
文件夹包含与每个标准环境相对应的三个日志文件。 日志文件随着时间的推移会变得非常大。 提供了rake task
以允许轻松清除日志文件。
rake log:clear # Truncates all *.log files in log/ to zero bytes # Specify which logs with LOGS=test,development,production
根据文档 ,如果要限制日志文件夹的大小,请将其放在“development.rb”文件中:
config.logger = ActiveSupport::Logger.new(config.paths['log'].first, 1, 50 * 1024 * 1024)
有了这个,您的日志文件永远不会超过50Mb。 您可以根据自己的喜好更改大小。 第二个参数中的“1”表示将保留1个历史日志文件,因此您将拥有最多100Mb的日志 – 当前日志和前一个50Mb的块。
您可能想要使用logrotate
。 看看这个问题的答案: Ruby on Rails生产日志轮换 。
我使用config/initializers/clear_development_log.rb
自动清除每个服务器上的开发日志:
if Rails.env.development? `rake log:clear` end
是的,你可以使用这样的语法:
config.logger = ActiveSupport::Logger.new(config.log_file, num_of_file_to_keep, num_of_MB*1024*1024)
例:
config.logger = ActiveSupport::Logger.new(config.log_file, 2, 20*1024*1024)
它不仅可以用于Rails日志,还可以使用rails运行的任何服务的日志文件,例如:rpush log,…
config.logger = ActiveSupport::Logger.new(nil)
执行该操作并完全禁用对文件的记录(保留控制台输出)。
在初始化程序中的公平妥协:
Rake::Task['log:clear'].invoke if Rails.env.development? || Rails.env.test?