Ротация логов в режиме Rails DEVELOPMENT? - PullRequest
8 голосов
/ 06 марта 2012

Для Rails 3.1 (скоро будет 3.2) у меня есть исключительно подробные журналы, в которые выкладывается много дополнительной рабочей информации.

Я обычно получаю мультигигабайтные development.log файлы.Я видел разные разговоры о вращающихся производственных бревнах, однако я не нашел ничего, что могло бы относиться к development.log вращению.

Как вы вращаете development.log на каждом * 1009?* или так? ИЛИ ЧТО Я БУДУ ПРЕДПОЧИТАТЬ - фактически обрезать заголовок файла, чтобы в журнале остались только самые последние элементы, до 100 МБ самых последних записей.

У меня естьнемного поигрался с этим и думаю, что в настоящее время все больше и больше ничего подобного не существует, и что, возможно, мне следует реализовать что-то, что каким-то образом будет использовать ruby ​​File.truncate, однако я пока не уверен в эффективности этого наконец файла на данный момент.

Ответы [ 2 ]

10 голосов
/ 21 марта 2012

В действительности вы можете указать классу Ruby Logger вращать файлы в конструкторе:

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

Пример:

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

В одном из моих файлов обогащения у меня есть следующая строка:

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

Содержит последние 10 файлов журналов, которые чередуются каждые 1 МБ.

1 голос
/ 06 марта 2012

В OSX я бы использовал newsyslog

/ etc / newsyslog.conf

В ОС Linux: logrotate

logrotate

...