在Rails开发模式下记录日志?

时间:2012-03-06 09:55:11

标签: ruby-on-rails ruby ruby-on-rails-3 bash logging

对于Rails 3.1(很快就会是3.2),我有非常详细的日志,其中有大量额外的工作人员信息涌入其中。

我经常以多GB development.log个文件结束。我已经看到有关旋转生产日志的各种各样的讨论,但是我没有找到任何似乎适用于development.log轮换的内容。

如何在每development.log左右轮换100.megabytes或者我最喜欢的是实际截断文件的头部,以便只有最新版本项目保留在日志中,最多可达100MB。

我已经玩过这个了,并且我正在考虑的事情比目前存在的更多,而且也许我应该实现一些会以某种方式使用ruby File.truncate的东西,但是我不确定到目前为止,这个功能还在文件的尾端。

2 个答案:

答案 0 :(得分:10)

您实际上可以告诉Ruby Logger类在构造函数中旋转文件:

http://corelib.rubyonrails.org/classes/Logger.html#M000163

示例:

Logger.new(name, shift_age = 7, shift_size = 1048576)

在我的一个enrivornment文件中,我有以下几行:

config.logger = Logger.new("#{RAILS_ROOT}/log/#{ENV['RAILS_ENV']}.log", 10, 1048576)

这将保留最后10个每1 MB旋转一次的日志文件。

答案 1 :(得分:1)

在OSX上,我会使用newsyslog

/etc/newsyslog.conf

在Linux操作系统上:logrotate

logrotate