Подтвердить что ты не робот

Слишком большой размер файла журнала Ruby on rails

Я споткнулся, чтобы узнать, что мой файл журнала rails3.1 очень большой, около 21 мб. Это, с точки зрения размера, нормальное? Какой файл журнала будет нужен в рабочей среде? Кроме того, могу ли я избавиться от журнала? Спасибо

4b9b3361

Ответ 1

вы можете просто удалить файл!
Rails создаст новый журнал, если он не существует.
Очевидно, сохранить/создать резервную копию файла, если это важно, но обычно это не так. Вы также можете заархивировать резервный файл (а затем удалить источник), если хотите сохранить его на одном диске, но при этом сохранить пространство.

Чтобы автоматически вращать файлы журналов (лучшее долгосрочное решение), используйте лог-поворот, как описано здесь:

Ротация журнала Ruby on Rails

тогда вы можете установить его и забыть!

Чтобы действительно изменить то, что регистрируется, см.:

http://dennisreimann.de/blog/silencing-the-rails-log-on-a-per-action-basis/

Ответ 2

В папке log вашего приложения Rails хранятся три файла журнала, соответствующие каждой из стандартных сред. Файлы журнала со временем могут расти очень большими. A rake task предоставляется для облегчения очистки файлов журнала.

rake log:clear
# Truncates all *.log files in log/ to zero bytes 
# Specify which logs with LOGS=test,development,production

Ответ 4

В соответствии с документацией, если вы хотите ограничить размер папки журнала, поместите это в свой файл development.rb'а

config.logger = ActiveSupport::Logger.new(config.paths['log'].first, 1, 50 * 1024 * 1024)

При этом ваши файлы журналов никогда не будут расти больше 50 МБ. Вы можете изменить размер по своему усмотрению. "1 во втором параметре означает, что 1 исторический файл журнала будет сохранен, поэтому у вас будет до 100 МБ журналов - текущий журнал и предыдущий фрагмент 50 МБ.

Ответ 5

Я автоматически очищаю журналы в разработке на каждом сервере, начиная с config/initializers/clear_development_log.rb:

if Rails.env.development?
  `rake log:clear`
end

Ответ 6

Да, вы можете использовать синтаксис следующим образом:

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, вы можете использовать файл журнала любых сервисов, запущенных с помощью рельсов, таких как: rpush log,...

Ответ 7

config.logger = ActiveSupport::Logger.new(nil) делает трюк и полностью отключает ведение журнала в файл (выход в консоль сохраняется).

Ответ 8

Справедливый компромисс в инициализаторе:

Rake::Task['log:clear'].invoke if Rails.env.development? || Rails.env.test?