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

Установите уровни ведения журнала в Ruby on Rails

Я использую следующий код для настройки ведения журнала в моем приложении Ruby on Rails:

environment.rb:

Rails.logger = Logger.new(STDOUT)

class Logger
  def format_message(severity, timestamp, progname, msg)
    "#{timestamp.to_formatted_s(:db)} #{severity} #{msg}\n"
  end
end

Я пытаюсь установить уровень ведения журнала для предупреждения, используя

config.log_level = :warn

в моем production.rb, но он, похоже, не работает. Я что-то пропустил?

Если я поставлю Rails.logger.level = 4 в моей среде .rb, он работает. Но я хотел бы настроить вещи в инициализаторах среды.

4b9b3361

Ответ 1

Согласно официальной документации, вы должны использовать:

config.log_level = :warn # In any environment initializer, or
Rails.logger.level = 0 # at any time

Если ни один из них не работает для вас, попробуйте:

config.log_level = Logger::WARN

И если это не сработает, попробуйте:

config.logger.level = Logger::WARN

Примечание: Последний метод, похоже, объединяет две официальные стратегии, но работает в некоторых ситуациях

Ответ 2

Для Rails 4.0 вы можете установить значение в production.rb (или в вашей желаемой среде) следующим образом:

# Set to :debug to see everything in the log.
config.log_level = :warn

Обновить Документы сообщают так:

2.2 Уровни журнала

Когда что-то записывается в журнал, оно печатается в соответствующем журнале, если уровень журнала сообщения равен или выше установленного уровня журнала. Если вы хотите узнать текущий уровень журнала, вы можете вызвать метод Rails.logger.level.

Доступные уровни журнала: :debug, :info, :warn, :error, :fatal и :unknown, соответствующие номерам уровня журнала от 0 до 5 соответственно. Чтобы изменить уровень журнала по умолчанию, используйте

config.log_level = :warn # In any environment initializer, or
Rails.logger.level = 0 # at any time

Это полезно, когда вы хотите регистрироваться в процессе разработки или создания, но вы не хотите наводнять ваш журнал производства ненужной информацией.

Уровень журнала Rails по умолчанию info в рабочем режиме и отладка в режиме разработки и тестирования.