2013-04-18 2 views
1

Я не хочу, чтобы он регистрировал входящие IP-адреса, я не хочу, чтобы он регистрировал любые внутренние события.
Я просто хочу, чтобы Rails обрабатывал запросы по мере их поступления, и все.Есть ли способ остановить рельсы, регистрирующие все?

Это можно сделать?

Как я могу предотвратить появление растущего development.log или production.log?

+1

Просто из любопытства, почему? Журналы чрезвычайно полезны для отладки, особенно когда ваше приложение находится в производстве. – LandonSchropp

+0

Если вы беспокоитесь о том, что размер журнала становится слишком большим, вы всегда можете повернуть свои журналы. http://stackoverflow.com/questions/4883891/ruby-on-rails-production-log-rotation – LandonSchropp

ответ

2

Вы можете просто заменить Рельсы журналирования с лесорубами, записывающих в/Dev/нуль:

class NullLoggerRailtie < Rails::Railtie 
    initializer 'null_logger', :before => 'initialize_logger' do |app| 
    Rails.logger = ActiveRecord::Base.logger = ActionController::Base.logger = ::Logger.new("/dev/null") 
    end 
end 

Это будет перенаправлять все Rails протоколирования в нулевое устройство, вместо того, чтобы его г o в файл в любом месте. Ведение журнала все равно произойдет, но оно будет немедленно уничтожено.

+0

Сладкий. Это также приводит к сбою данных, таких как входящие IP-адреса и т. Д.? Думаю, так оно и есть. –

+0

Он перенаправляет все выходные данные этих логгеров на нулевое устройство - все зарегистрированные в них будут в конечном итоге регистрироваться в никуда, включая IP-адреса и ошибки и т. П. :) –

+0

Это именно то, что я хотел –

2

Установите уровень журнала.

Доступные уровни журнала являются: :debug, :info, :warn, :error и :fatal

Если вы хотите узнать текущий уровень журнала вы можете вызвать метод Rails.logger.level.

Чтобы изменить использование уровня журнала config.log_level = :fatal в вашей среде инициализаторе или Rails.logger.level = 0 инлайн в любое время

Другим вариантом может быть symbolicly связать файл журнала/DEV/нулевому

+0

Извинения, я оговорился (у меня труднее всего придумывать заголовки для вопросов). Я действительно хочу, чтобы рельсы не сохраняли никаких записей о ЛЮБОЙ деятельности, которую он сделал. Это включает журналы (я буду смотреть на это, спасибо), но и что-нибудь еще. Сохраняет ли он какую-либо другую информацию в журнале о том, кто пришел на сайт и что они сделали? –

+0

Кстати, это не работает по какой-то причине. Я добавил config.log_level =: fatal как для производства, так и для разработки, и я все еще получаю целые сгустки-о-журналы, которые, я уверен, где-то хранятся. –

+0

См. Второй вариант выше. –

0

Упрощая Chris Heald answer, вы можете установить логгер /dev/null средой:

Rails.application.configure do 
    config.logger = Logger.new("/dev/null") 
end 

Просто поместите код в нужном файле (ы):

  • развития: config/environments/development.rb
  • Test: config/environments/test.rb
  • Производство: config/environments/production.rb
  • Все окружения: congig/applications.rb
Смежные вопросы