Как не печатать предупреждения об устаревании в журнале ошибок apache?

Я получаю нежелательные предупреждения об устаревании в журнале ошибок Apache:

/srv/www/<application>/shared/bundle/ruby/1.8/gems/actionpack-3.0.7/lib/action_view/paths.rb:15: warning: Object#id will be deprecated; use Object#object_id

Я бы не хотел печатать эти предупреждения об устаревании во время производства.

Я попытался добавить это в свой файл enviromenents/production.rb:

  config.active_support.deprecation = nil

а также

  config.active_support.deprecation = :stderr

а также

config.active_support.deprecation = :notify

а также

  config.active_support.deprecation = :log

Однако ни один из этих вариантов не увенчался успехом, поскольку журнал Apache продолжает получать предупреждения об устаревании.

Кто-нибудь знает, как мне это сделать?


person Pedro Rolo    schedule 11.07.2011    source источник


Ответы (2)


Это конкретное предупреждение печатает сам Ruby, оно не имеет ничего общего с active_support. Единственный способ, который я вижу, это отключить весь вывод stderr, но я сомневаюсь, что вы этого хотите.

Добавлено:

Чтобы поймать это, это должно помочь:

class Object
  def id
    raise
  end
end
person Victor Moroz    schedule 11.07.2011
comment
Спасибо. Знаете ли вы, есть ли способ получить трассировку стека устаревшего вызова? - person Pedro Rolo; 11.07.2011

Это зависит. Что выводит предупреждения об устаревании? Если это драгоценный камень вне рельсов (не активный-что-то или действие-что-то), он, вероятно, просто печатает его в STDERR, что приведет к его печати в журнале ошибок.

Мое предложение состояло бы в том, чтобы исправить все, что использует устаревшие методы, поскольку, вероятно, есть причина, по которой они устарели.

person sarahhodne    schedule 11.07.2011
comment
К настоящему времени я все еще не хочу исправлять причину этого предупреждения об устаревании. Как вы можете видеть в моем последнем редактировании, объект принадлежит action_view. - person Pedro Rolo; 11.07.2011